MySQL 9.3.0
Source Code Documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
mrs::authentication::SaslHandler Class Referenceabstract

#include <sasl_handler.h>

Inheritance diagram for mrs::authentication::SaslHandler:
[legend]

Classes

struct  SaslData
 
struct  SaslResult
 
class  SaslSessionData
 

Public Types

enum  AuthenticationState { AuthenticationStateExchange , AuthenticationStateInitialResponse , AuthenticationStateResponse , AuthenticationStateInvalid }
 
- Public Types inherited from mrs::interface::AuthorizeHandler
using SqlSessionCached = collector::MysqlCacheManager::CachedObject
 
using AuthUser = mrs::database::entry::AuthUser
 
using AuthApp = mrs::database::entry::AuthApp
 
using RequestContext = rest::RequestContext
 
using Session = http::SessionManager::Session
 
using SessionPtr = http::SessionManager::SessionPtr
 
using UserManager = mrs::users::UserManager
 

Public Member Functions

 SaslHandler (const AuthApp &entry, QueryFactory *qf)
 
const AuthAppget_entry () const override
 
std::set< UniversalIdget_service_ids () const override
 
UniversalId get_id () const override
 
virtual std::unique_ptr< SessionDataallocate_session_data ()=0
 
bool redirects (RequestContext &ctxt) const override
 
bool authorize (RequestContext &ctxt, const SessionPtr &session, AuthUser *out_user) override
 
virtual AuthenticationState get_authentication_state (const UrlParameters &parameters, const bool has_auth_data)
 
virtual SaslResult client_request_authentication_exchange (RequestContext &ctxt, Session *session, AuthUser *out_user)=0
 
virtual SaslResult client_initial_response (RequestContext &ctxt, Session *session, AuthUser *out_user, const std::string &auth_data, const bool is_json)=0
 
virtual SaslResult client_response (RequestContext &ctxt, Session *session, AuthUser *out_user, const std::string &auth_data, const bool is_json)=0
 
UserManagerget_user_manager () override
 
- Public Member Functions inherited from mrs::interface::AuthorizeHandler
virtual ~AuthorizeHandler ()=default
 
virtual const std::string & get_handler_name () const =0
 
virtual std::optional< std::string > get_session_id_from_request_data (RequestContext &ctxt)=0
 
virtual void pre_authorize_account (AuthorizeHandler *handler, const std::string &account)=0
 

Protected Types

using HttpResult = mrs::interface::HttpResult
 
using AuthApp = database::entry::AuthApp
 
using duration = std::chrono::steady_clock::duration
 
using seconds = std::chrono::seconds
 
using steady_clock = std::chrono::steady_clock
 
using time_point = std::chrono::steady_clock::time_point
 
using HttpMethodType = ::http::base::method::key_type
 
using UserManager = mrs::users::UserManager
 
using SessionManager = mrs::http::SessionManager
 
using VariantPointer = helper::VariantPointer
 
using UrlParameters = helper::http::Url::Parameters
 
using SessionData = http::SessionManager::Session::SessionData
 
using QueryFactory = mrs::interface::QueryFactory
 

Protected Member Functions

SaslData get_authorize_data (RequestContext &ctxt)
 

Protected Attributes

AuthApp entry_
 
UserManager um_
 

Member Typedef Documentation

◆ AuthApp

using mrs::authentication::SaslHandler::AuthApp = database::entry::AuthApp
protected

◆ duration

using mrs::authentication::SaslHandler::duration = std::chrono::steady_clock::duration
protected

◆ HttpMethodType

◆ HttpResult

◆ QueryFactory

◆ seconds

using mrs::authentication::SaslHandler::seconds = std::chrono::seconds
protected

◆ SessionData

◆ SessionManager

◆ steady_clock

using mrs::authentication::SaslHandler::steady_clock = std::chrono::steady_clock
protected

◆ time_point

using mrs::authentication::SaslHandler::time_point = std::chrono::steady_clock::time_point
protected

◆ UrlParameters

◆ UserManager

◆ VariantPointer

Member Enumeration Documentation

◆ AuthenticationState

Enumerator
AuthenticationStateExchange 
AuthenticationStateInitialResponse 
AuthenticationStateResponse 
AuthenticationStateInvalid 

Constructor & Destructor Documentation

◆ SaslHandler()

mrs::authentication::SaslHandler::SaslHandler ( const AuthApp entry,
QueryFactory qf 
)

Member Function Documentation

◆ allocate_session_data()

virtual std::unique_ptr< SessionData > mrs::authentication::SaslHandler::allocate_session_data ( )
pure virtual

◆ authorize()

bool mrs::authentication::SaslHandler::authorize ( RequestContext ctxt,
const SessionPtr session,
AuthUser out_user 
)
overridevirtual

◆ client_initial_response()

virtual SaslResult mrs::authentication::SaslHandler::client_initial_response ( RequestContext ctxt,
Session session,
AuthUser out_user,
const std::string &  auth_data,
const bool  is_json 
)
pure virtual

◆ client_request_authentication_exchange()

virtual SaslResult mrs::authentication::SaslHandler::client_request_authentication_exchange ( RequestContext ctxt,
Session session,
AuthUser out_user 
)
pure virtual

◆ client_response()

virtual SaslResult mrs::authentication::SaslHandler::client_response ( RequestContext ctxt,
Session session,
AuthUser out_user,
const std::string &  auth_data,
const bool  is_json 
)
pure virtual

◆ get_authentication_state()

AuthenticationState mrs::authentication::SaslHandler::get_authentication_state ( const UrlParameters parameters,
const bool  has_auth_data 
)
virtual

◆ get_authorize_data()

SaslData mrs::authentication::SaslHandler::get_authorize_data ( RequestContext ctxt)
protected

◆ get_entry()

const AuthApp & mrs::authentication::SaslHandler::get_entry ( ) const
overridevirtual

◆ get_id()

UniversalId mrs::authentication::SaslHandler::get_id ( ) const
overridevirtual

◆ get_service_ids()

std::set< UniversalId > mrs::authentication::SaslHandler::get_service_ids ( ) const
overridevirtual

◆ get_user_manager()

UserManager & mrs::authentication::SaslHandler::get_user_manager ( )
inlineoverridevirtual

◆ redirects()

bool mrs::authentication::SaslHandler::redirects ( RequestContext ctxt) const
overridevirtual

Member Data Documentation

◆ entry_

AuthApp mrs::authentication::SaslHandler::entry_
protected

◆ um_

UserManager mrs::authentication::SaslHandler::um_
protected

The documentation for this class was generated from the following files: