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

#include <oauth2_handler.h>

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

Classes

class  GenericSessionData
 
class  RequestHandler
 
class  RequestHandlerJsonSimpleObject
 

Public Types

using RequestHandlerPtr = std::unique_ptr< RequestHandler >
 
- 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

 Oauth2Handler (const AuthApp &entry, QueryFactory *qf)
 
const AuthAppget_entry () const override
 
std::set< UniversalIdget_service_ids () const override
 
UniversalId get_id () const override
 
bool redirects (RequestContext &ctxt) const override
 
bool authorize (RequestContext &ctxt, const SessionPtr &session, AuthUser *out_user) override
 
std::optional< std::string > get_session_id_from_request_data (RequestContext &ctxt) override
 
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 void pre_authorize_account (AuthorizeHandler *handler, const std::string &account)=0
 

Protected Types

using AuthApp = mrs::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 Request = ::http::base::Request
 
using HttpUri = ::http::base::Uri
 
using UserManager = ::mrs::users::UserManager
 
using SessionManager = ::mrs::http::SessionManager
 
using VariantPointer = ::helper::VariantPointer
 
using Url = ::helper::http::Url
 
using QueryFactory = mrs::interface::QueryFactory
 

Protected Member Functions

virtual std::string get_url_direct_auth () const =0
 
virtual std::string get_url_location (GenericSessionData *data, Url *url) const =0
 
virtual std::string get_url_validation (GenericSessionData *data) const =0
 
virtual RequestHandlerPtr get_request_handler_access_token (GenericSessionData *session_data)=0
 
virtual RequestHandlerPtr get_request_handler_verify_account (Session *session, GenericSessionData *session_data)=0
 
virtual std::string get_body_access_token_request (GenericSessionData *session_data) const =0
 
std::string get_cookie_session_id (Request *request) const
 
void set_cookie_session_id (Request *request, SessionManager::Session *session)
 
void new_session_start_login (RequestContext &ctxt, Session *session)
 
bool http_acquire_access_token (GenericSessionData *data)
 
bool http_verify_account (Session *session, GenericSessionData *data, SqlSessionCached *sql_session)
 

Static Protected Member Functions

static bool send_http_request (HttpMethodType method, const std::string &url, const std::string &body, RequestHandler *request_handler=nullptr)
 

Protected Attributes

AuthApp entry_
 
UserManager um_
 

Member Typedef Documentation

◆ AuthApp

◆ duration

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

◆ HttpMethodType

◆ HttpUri

◆ QueryFactory

◆ Request

◆ RequestHandlerPtr

◆ seconds

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

◆ SessionManager

◆ steady_clock

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

◆ time_point

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

◆ Url

◆ UserManager

◆ VariantPointer

Constructor & Destructor Documentation

◆ Oauth2Handler()

mrs::authentication::Oauth2Handler::Oauth2Handler ( const AuthApp entry,
QueryFactory qf 
)
inline

Member Function Documentation

◆ authorize()

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

◆ get_body_access_token_request()

virtual std::string mrs::authentication::Oauth2Handler::get_body_access_token_request ( GenericSessionData session_data) const
protectedpure virtual

◆ get_cookie_session_id()

std::string mrs::authentication::Oauth2Handler::get_cookie_session_id ( Request request) const
protected

◆ get_entry()

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

◆ get_id()

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

◆ get_request_handler_access_token()

virtual RequestHandlerPtr mrs::authentication::Oauth2Handler::get_request_handler_access_token ( GenericSessionData session_data)
protectedpure virtual

◆ get_request_handler_verify_account()

virtual RequestHandlerPtr mrs::authentication::Oauth2Handler::get_request_handler_verify_account ( Session session,
GenericSessionData session_data 
)
protectedpure virtual

◆ get_service_ids()

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

◆ get_session_id_from_request_data()

std::optional< std::string > mrs::authentication::Oauth2Handler::get_session_id_from_request_data ( RequestContext ctxt)
overridevirtual

◆ get_url_direct_auth()

virtual std::string mrs::authentication::Oauth2Handler::get_url_direct_auth ( ) const
protectedpure virtual

◆ get_url_location()

virtual std::string mrs::authentication::Oauth2Handler::get_url_location ( GenericSessionData data,
Url url 
) const
protectedpure virtual

◆ get_url_validation()

virtual std::string mrs::authentication::Oauth2Handler::get_url_validation ( GenericSessionData data) const
protectedpure virtual

◆ get_user_manager()

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

◆ http_acquire_access_token()

bool mrs::authentication::Oauth2Handler::http_acquire_access_token ( GenericSessionData data)
protected

◆ http_verify_account()

bool mrs::authentication::Oauth2Handler::http_verify_account ( Session session,
GenericSessionData data,
SqlSessionCached sql_session 
)
protected

◆ new_session_start_login()

void mrs::authentication::Oauth2Handler::new_session_start_login ( RequestContext ctxt,
Session session 
)
protected

◆ redirects()

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

◆ send_http_request()

bool mrs::authentication::Oauth2Handler::send_http_request ( HttpMethodType  method,
const std::string &  url,
const std::string &  body,
RequestHandler request_handler = nullptr 
)
staticprotected

◆ set_cookie_session_id()

void mrs::authentication::Oauth2Handler::set_cookie_session_id ( Request request,
SessionManager::Session session 
)
protected

Member Data Documentation

◆ entry_

AuthApp mrs::authentication::Oauth2Handler::entry_
protected

◆ um_

UserManager mrs::authentication::Oauth2Handler::um_
protected

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