26#ifndef ROUTER_SRC_REST_MRS_SRC_MRS_AUTHENTICATION_OAUTH2_HANDLER_H_ 
   27#define ROUTER_SRC_REST_MRS_SRC_MRS_AUTHENTICATION_OAUTH2_HANDLER_H_ 
   45namespace authentication {
 
   50  using duration = std::chrono::steady_clock::duration;
 
   53  using time_point = std::chrono::steady_clock::time_point;
 
  103    using OutPair = std::pair<const char *, VariantPointer>;
 
  141                                const std::string &body,
 
Definition: cache_manager.h:41
 
Definition: variant_pointer.h:34
 
Definition: oauth2_handler.h:73
 
seconds expires
Definition: oauth2_handler.h:80
 
time_point acquired_at
Definition: oauth2_handler.h:82
 
std::string challange
Definition: oauth2_handler.h:83
 
bool session_id_set
Definition: oauth2_handler.h:81
 
std::string auth_code
Definition: oauth2_handler.h:77
 
std::string redirection_host
Definition: oauth2_handler.h:79
 
std::string refresh_token
Definition: oauth2_handler.h:76
 
std::string redirection
Definition: oauth2_handler.h:78
 
std::string access_token
Definition: oauth2_handler.h:75
 
Definition: oauth2_handler.h:101
 
std::vector< OutPair > OutJsonObjectKeyValues
Definition: oauth2_handler.h:104
 
void before_send(Request *request) override
Definition: oauth2_handler.cc:65
 
RequestHandlerJsonSimpleObject(OutJsonObjectKeyValues output)
Definition: oauth2_handler.h:106
 
std::pair< const char *, VariantPointer > OutPair
Definition: oauth2_handler.h:103
 
OutJsonObjectKeyValues output_
Definition: oauth2_handler.h:112
 
bool response(const std::vector< uint8_t > &value) override
Definition: oauth2_handler.cc:67
 
Definition: oauth2_handler.h:64
 
virtual void before_send(Request *request)=0
 
virtual bool response(const std::vector< uint8_t > &value)=0
 
virtual ~RequestHandler()=default
 
Definition: oauth2_handler.h:47
 
std::optional< std::string > get_session_id_from_request_data(RequestContext &ctxt) override
Definition: oauth2_handler.cc:305
 
UserManager & get_user_manager() override
Definition: oauth2_handler.h:115
 
::http::base::method::key_type HttpMethodType
Definition: oauth2_handler.h:54
 
static bool send_http_request(HttpMethodType method, const std::string &url, const std::string &body, RequestHandler *request_handler=nullptr)
Definition: oauth2_handler.cc:94
 
std::set< UniversalId > get_service_ids() const override
Definition: oauth2_handler.cc:86
 
std::chrono::seconds seconds
Definition: oauth2_handler.h:51
 
bool redirects(RequestContext &ctxt) const override
Definition: oauth2_handler.cc:60
 
UserManager um_
Definition: oauth2_handler.h:145
 
virtual std::string get_url_direct_auth() const =0
 
virtual std::string get_url_location(GenericSessionData *data, Url *url) const =0
 
std::unique_ptr< RequestHandler > RequestHandlerPtr
Definition: oauth2_handler.h:71
 
virtual std::string get_body_access_token_request(GenericSessionData *session_data) const =0
 
virtual std::string get_url_validation(GenericSessionData *data) const =0
 
bool http_acquire_access_token(GenericSessionData *data)
Definition: oauth2_handler.cc:161
 
std::chrono::steady_clock::time_point time_point
Definition: oauth2_handler.h:53
 
void new_session_start_login(RequestContext &ctxt, Session *session)
Definition: oauth2_handler.cc:188
 
bool authorize(RequestContext &ctxt, const SessionPtr &session, AuthUser *out_user) override
Definition: oauth2_handler.cc:224
 
UniversalId get_id() const override
Definition: oauth2_handler.cc:92
 
const AuthApp & get_entry() const override
Definition: oauth2_handler.cc:90
 
AuthApp entry_
Definition: oauth2_handler.h:144
 
Oauth2Handler(const AuthApp &entry, QueryFactory *qf)
Definition: oauth2_handler.h:87
 
std::chrono::steady_clock::duration duration
Definition: oauth2_handler.h:50
 
virtual RequestHandlerPtr get_request_handler_access_token(GenericSessionData *session_data)=0
 
std::chrono::steady_clock steady_clock
Definition: oauth2_handler.h:52
 
bool http_verify_account(Session *session, GenericSessionData *data, SqlSessionCached *sql_session)
Definition: oauth2_handler.cc:310
 
virtual RequestHandlerPtr get_request_handler_verify_account(Session *session, GenericSessionData *session_data)=0
 
std::string get_cookie_session_id(Request *request) const
 
void set_cookie_session_id(Request *request, SessionManager::Session *session)
 
Definition: session_manager.h:74
 
Definition: session_manager.h:72
 
Definition: session_manager.h:52
 
Definition: authorize_handler.h:53
 
mrs::database::entry::AuthApp AuthApp
Definition: authorize_handler.h:57
 
rest::RequestContext RequestContext
Definition: authorize_handler.h:58
 
Definition: query_factory.h:55
 
Definition: user_manager.h:41
 
int key_type
Definition: method.h:38
 
Request::Uri Uri
Definition: request.cc:36
 
mrs::database::entry::AuthApp AuthApp
Definition: oauth2_handler.cc:58
 
helper::http::Url Url
Definition: sasl_handler.cc:75
 
std::chrono::seconds seconds
Definition: authorize_manager.cc:68
 
mrs::database::entry::AuthUser AuthUser
Definition: scram_handler.cc:54
 
AuthorizeManager::SessionPtr SessionPtr
Definition: authorize_manager.cc:78
 
ValueType value(const std::optional< ValueType > &v)
Definition: gtid.h:83
 
Definition: authorize_manager.h:48
 
mrs::database::entry::UniversalId UniversalId
Definition: universal_id.h:33
 
Definition: gcs_xcom_synode.h:64
 
RestClient::Request Request
Definition: rest_client.cc:29
 
Definition: completion_hash.h:35
 
Definition: request_context.h:47