MySQL 9.3.0
Source Code Documentation
mrs::authentication Namespace Reference

Namespaces

namespace  anonymous_namespace{authorize_manager.cc}
 
namespace  anonymous_namespace{sasl_handler.cc}
 
namespace  anonymous_namespace{www_authentication_handler.cc}
 

Classes

struct  AcceptInfo
 
class  AuthHandlerFactory
 
class  AuthorizeManager
 
struct  AuthorizeParameters
 
struct  GeneratorNonceCharacters
 Generate nonce character. More...
 
class  JsonAuthContinue
 
class  JsonAuthInitRequest
 
class  KeyStoredInformations
 
class  MysqlHandler
 
class  Oauth2FacebookHandler
 
class  Oauth2GoogleHandler
 
class  Oauth2Handler
 
class  Oauth2OidcHandler
 
class  RateControlFor
 
class  SaslHandler
 
struct  ScramClientAuthContinue
 
struct  ScramClientAuthInitial
 
class  ScramHandler
 
class  ScramJsonParser
 
class  ScramParser
 
struct  ScramServerAuthChallange
 
class  ScramSessionData
 
class  ScramStandardParser
 
class  TrackAuthorizeHandler
 
class  UniversalIdContainer
 
class  UserOptionsParser
 
class  WwwAuthenticationHandler
 

Typedefs

using AuthHandlerPtr = AuthHandlerFactory::AuthHandlerPtr
 
using milliseconds = std::chrono::milliseconds
 
using seconds = std::chrono::seconds
 
using minutes = std::chrono::minutes
 
using Headers = ::http::base::Headers
 
using JwtHolder = helper::JwtHolder
 
using Jwt = helper::Jwt
 
using SessionId = AuthorizeManager::SessionId
 
using Session = AuthorizeManager::Session
 
using SessionConfiguration = mrs::http::SessionManager::Configuration
 
using Handlers = AuthorizeManager::AuthHandlers
 
using AuthorizeHandlerPtr = AuthorizeManager::AuthorizeHandlerPtr
 
using SessionPtr = AuthorizeManager::SessionPtr
 
using HttpResult = mrs::interface::HttpResult
 
using MapObject = std::map< std::string, std::string >
 
using RequestHandler = Oauth2Handler::RequestHandler
 
using RequestHandlerPtr = Oauth2Handler::RequestHandlerPtr
 
using GenericSessionData = Oauth2Handler::GenericSessionData
 
using AuthApp = mrs::database::entry::AuthApp
 
using AuthenticationState = SaslHandler::AuthenticationState
 
using SaslData = SaslHandler::SaslData
 
using Url = helper::http::Url
 
using SaslResult = ScramHandler::SaslResult
 
using AuthUser = mrs::database::entry::AuthUser
 

Enumerations

enum class  BlockReason { kNone , kTooFast , kRateExceeded }
 

Functions

static std::string expire_timestamp (std::chrono::system_clock::duration d)
 
static bool is_timestamp_in_past (const std::string ts)
 
template<typename Document >
void doc_set_member (Document &doc, std::string_view name, std::string_view value)
 
static std::string generate_uuid ()
 
template<typename Container >
AuthorizeParameters extract_parameters (const Container &container, const bool allow_shorts=false)
 
AuthorizeParameters get_authorize_parameters (::http::base::Request *request)
 
std::string crypto_hmac (const std::string &key, const std::string &data)
 
std::string crypto_xor (const std::string &key, const std::string &data)
 
std::string crypto_sha256 (const std::string &data)
 
HttpResult get_problem_description (::http::base::status_code::key_type status, const std::string &msg, MapObject o)
 
HttpResult get_problem_description (::http::base::status_code::key_type status)
 
template<typename T >
std::string as_string (const std::vector< T > &v)
 
int64_t as_int64 (const char *s)
 
std::string scram_pack (const ScramClientAuthContinue &data)
 
std::string scram_pack (const ScramClientAuthInitial &data)
 
std::string scram_pack (const ScramServerAuthChallange &data)
 
std::map< std::string, std::string > convert_to_map (const std::vector< std::string > &values)
 
ScramClientAuthInitial scram_unpack_initial (const std::string &auth_data)
 
ScramClientAuthContinue scram_unpack_continue (const std::string &auth_data)
 
std::string scram_remove_proof (const std::string &auth_data)
 
std::string scram_remove_gs2_header (const std::string &auth_data)
 
std::unique_ptr< ScramParsercreate_scram_parser (const bool is_json)
 
std::string to_string (const std::set< UniversalId > &ids)
 
static std::string escape (const std::string &in)
 
static void modify_oci_path (std::vector< std::string > &path_elements, const char *last_path_element)
 
AuthenticationState get_authentication_state_impl (const std::string &s)
 
static std::string string_array (const std::string &s)
 
template<typename T = uint8_t>
std::vector< Tas_vector (const std::string &v)
 
AuthApp limit_users (const AuthApp &a)
 
const char * to_string (const bool b)
 
static bool extract_user_credentials_from_token (const std::string &token, std::string *user, mysql_harness::SecureString *password)
 
static std::string find_header_or (const ::http::base::Headers &headers, const std::string &name, std::string &&default_value)
 

Variables

const UniversalId k_vendor_mrs {{0x30, 0}}
 
const UniversalId k_vendor_mysql {{0x31, 0}}
 
const UniversalId k_vendor_facebook {{0x32, 0}}
 
const UniversalId k_vendor_google {{0x34, 0}}
 
const UniversalId k_vendor_oidc {{0x35, 0}}
 
const uint64_t k_default_jwt_expire_timeout {15}
 
const uint64_t k_maximum_jwt_expire_timeout {60}
 
const std::string k_oauth_scope
 
static const std::string kParameterAuthData = "data"
 
static const char * kBasicSchema = "basic"
 

Typedef Documentation

◆ AuthApp

◆ AuthenticationState

◆ AuthHandlerPtr

◆ AuthorizeHandlerPtr

◆ AuthUser

◆ GenericSessionData

◆ Handlers

◆ Headers

◆ HttpResult

◆ Jwt

◆ JwtHolder

◆ MapObject

using mrs::authentication::MapObject = typedef std::map<std::string, std::string>

◆ milliseconds

using mrs::authentication::milliseconds = typedef std::chrono::milliseconds

◆ minutes

using mrs::authentication::minutes = typedef std::chrono::minutes

◆ RequestHandler

◆ RequestHandlerPtr

◆ SaslData

◆ SaslResult

◆ seconds

using mrs::authentication::seconds = typedef std::chrono::seconds

◆ Session

◆ SessionConfiguration

◆ SessionId

◆ SessionPtr

◆ Url

Enumeration Type Documentation

◆ BlockReason

Enumerator
kNone 
kTooFast 
kRateExceeded 

Function Documentation

◆ as_int64()

int64_t mrs::authentication::as_int64 ( const char *  s)

◆ as_string()

template<typename T >
std::string mrs::authentication::as_string ( const std::vector< T > &  v)

◆ as_vector()

template<typename T = uint8_t>
std::vector< T > mrs::authentication::as_vector ( const std::string &  v)

◆ convert_to_map()

std::map< std::string, std::string > mrs::authentication::convert_to_map ( const std::vector< std::string > &  values)

◆ create_scram_parser()

std::unique_ptr< ScramParser > mrs::authentication::create_scram_parser ( const bool  is_json)

◆ crypto_hmac()

std::string mrs::authentication::crypto_hmac ( const std::string &  key,
const std::string &  data 
)

◆ crypto_sha256()

std::string mrs::authentication::crypto_sha256 ( const std::string &  data)

◆ crypto_xor()

std::string mrs::authentication::crypto_xor ( const std::string &  key,
const std::string &  data 
)

◆ doc_set_member()

template<typename Document >
void mrs::authentication::doc_set_member ( Document &  doc,
std::string_view  name,
std::string_view  value 
)

◆ escape()

static std::string mrs::authentication::escape ( const std::string &  in)
static

◆ expire_timestamp()

static std::string mrs::authentication::expire_timestamp ( std::chrono::system_clock::duration  d)
static

◆ extract_parameters()

template<typename Container >
AuthorizeParameters mrs::authentication::extract_parameters ( const Container &  container,
const bool  allow_shorts = false 
)

◆ extract_user_credentials_from_token()

static bool mrs::authentication::extract_user_credentials_from_token ( const std::string &  token,
std::string *  user,
mysql_harness::SecureString password 
)
static

◆ find_header_or()

static std::string mrs::authentication::find_header_or ( const ::http::base::Headers headers,
const std::string &  name,
std::string &&  default_value 
)
static

◆ generate_uuid()

static std::string mrs::authentication::generate_uuid ( )
static

◆ get_authentication_state_impl()

AuthenticationState mrs::authentication::get_authentication_state_impl ( const std::string &  s)

◆ get_authorize_parameters()

AuthorizeParameters mrs::authentication::get_authorize_parameters ( ::http::base::Request request)

◆ get_problem_description() [1/2]

mrs::interface::HttpResult mrs::authentication::get_problem_description ( ::http::base::status_code::key_type  status)

◆ get_problem_description() [2/2]

mrs::interface::HttpResult mrs::authentication::get_problem_description ( ::http::base::status_code::key_type  status,
const std::string &  msg,
MapObject  o 
)

◆ is_timestamp_in_past()

static bool mrs::authentication::is_timestamp_in_past ( const std::string  ts)
static

◆ limit_users()

AuthApp mrs::authentication::limit_users ( const AuthApp a)
inline

◆ modify_oci_path()

static void mrs::authentication::modify_oci_path ( std::vector< std::string > &  path_elements,
const char *  last_path_element 
)
static

◆ scram_pack() [1/3]

std::string mrs::authentication::scram_pack ( const ScramClientAuthContinue data)

◆ scram_pack() [2/3]

std::string mrs::authentication::scram_pack ( const ScramClientAuthInitial data)

◆ scram_pack() [3/3]

std::string mrs::authentication::scram_pack ( const ScramServerAuthChallange data)

◆ scram_remove_gs2_header()

std::string mrs::authentication::scram_remove_gs2_header ( const std::string &  auth_data)

◆ scram_remove_proof()

std::string mrs::authentication::scram_remove_proof ( const std::string &  auth_data)

◆ scram_unpack_continue()

ScramClientAuthContinue mrs::authentication::scram_unpack_continue ( const std::string &  auth_data)

◆ scram_unpack_initial()

ScramClientAuthInitial mrs::authentication::scram_unpack_initial ( const std::string &  auth_data)

◆ string_array()

static std::string mrs::authentication::string_array ( const std::string &  s)
static

◆ to_string() [1/2]

const char * mrs::authentication::to_string ( const bool  b)

◆ to_string() [2/2]

std::string mrs::authentication::to_string ( const std::set< UniversalId > &  ids)

Variable Documentation

◆ k_default_jwt_expire_timeout

const uint64_t mrs::authentication::k_default_jwt_expire_timeout {15}

◆ k_maximum_jwt_expire_timeout

const uint64_t mrs::authentication::k_maximum_jwt_expire_timeout {60}

◆ k_oauth_scope

const std::string mrs::authentication::k_oauth_scope
Initial value:
=
"https://www.googleapis.com/auth/userinfo.email "
"https://www.googleapis.com/auth/userinfo.profile"

◆ k_vendor_facebook

const UniversalId mrs::authentication::k_vendor_facebook {{0x32, 0}}

◆ k_vendor_google

const UniversalId mrs::authentication::k_vendor_google {{0x34, 0}}

◆ k_vendor_mrs

const UniversalId mrs::authentication::k_vendor_mrs {{0x30, 0}}

◆ k_vendor_mysql

const UniversalId mrs::authentication::k_vendor_mysql {{0x31, 0}}

◆ k_vendor_oidc

const UniversalId mrs::authentication::k_vendor_oidc {{0x35, 0}}

◆ kBasicSchema

const char* mrs::authentication::kBasicSchema = "basic"
static

◆ kParameterAuthData

const std::string mrs::authentication::kParameterAuthData = "data"
static