10Duke Enterprise C++ SDK
Toggle main menu visibility
Loading...
Searching...
No Matches
DefaultOIDCBrowserFlow.h
1
#ifndef TENDUKE_OIDC_DEFAULTOIDCBROWSERFLOW_H
2
#define TENDUKE_OIDC_DEFAULTOIDCBROWSERFLOW_H
3
4
#include "./BaseOIDCClient.h"
5
#include "./DefaultOIDCBrowserFlowAuthenticationRequest.h"
6
#include "./DefaultOIDCRefreshRequest.h"
7
#include "../OIDCBrowserFlow.h"
8
#include "../OIDCConfiguration.h"
9
#include "../../oauth/OAuthBrowserFlow.h"
10
11
#include "http/HTTPClient.h"
12
#include "jwt/JWTParser.h"
13
#include "utl/random/RandomURLSafeString.h"
14
15
#include <memory>
16
#include <string>
17
#include <utility>
18
#include <utility>
19
20
namespace
tenduke
{
namespace
oidc
{
21
22
27
class
DefaultOIDCBrowserFlow
:
public
tenduke::oidc::BaseOIDCClient
28
,
public
virtual
tenduke::oidc::OIDCBrowserFlow
29
{
30
public
:
32
static
const
std::size_t
DEFAULT_NONCE_LENGTH
= 32;
33
34
public
:
44
DefaultOIDCBrowserFlow
(
45
const
std::shared_ptr<const tenduke::oidc::OIDCConfiguration> &
oidcConfiguration
,
46
const
std::shared_ptr<const tenduke::oauth::OAuthBrowserFlow> &oauthClient,
47
const
std::shared_ptr<tenduke::utl::random::RandomUrlSafeString> &randomUrlSafeString,
48
const
std::shared_ptr<const tenduke::jwt::JWTParser> &jwtParser,
49
const
std::shared_ptr<const tenduke::http::HTTPClient> &httpClient,
50
size_t
nonceLength =
DEFAULT_NONCE_LENGTH
51
);
52
//`tenduke::oidc::BrowserOIDCClient interface`
53
public
:
54
std::unique_ptr<const tenduke::oidc::OIDCBrowserFlowAuthenticationRequest>
authenticate
(
const
std::string &scopes)
const override
;
55
std::unique_ptr<const tenduke::oidc::OIDCBrowserFlowAuthenticationRequest>
authenticate
(
56
const
std::string &scopes,
57
const
std::map<std::string, std::string> &additionalParameters
58
)
const override
;
59
60
protected
:
65
std::string
generateNonce
()
const
;
66
67
private
:
68
const
std::shared_ptr<const tenduke::oauth::OAuthBrowserFlow> oauthClient;
69
const
std::shared_ptr<tenduke::utl::random::RandomUrlSafeString> randomUrlSafeString;
70
71
const
size_t
nonceLength;
72
};
73
74
75
}}
76
77
#endif
// TENDUKE_OIDC_DEFAULTOIDCBROWSERFLOW_H
DefaultOIDCBrowserFlow::DefaultOIDCBrowserFlow
DefaultOIDCBrowserFlow(const std::shared_ptr< const tenduke::oidc::OIDCConfiguration > &oidcConfiguration, const std::shared_ptr< const tenduke::oauth::OAuthBrowserFlow > &oauthClient, const std::shared_ptr< tenduke::utl::random::RandomUrlSafeString > &randomUrlSafeString, const std::shared_ptr< const tenduke::jwt::JWTParser > &jwtParser, const std::shared_ptr< const tenduke::http::HTTPClient > &httpClient, size_t nonceLength=DEFAULT_NONCE_LENGTH)
Constructs new instance.
Definition
DefaultOIDCBrowserFlow.cpp:41
tenduke::oidc::BaseOIDCClient
Base-class for OIDC-clients.
Definition
BaseOIDCClient.h:22
tenduke::oidc::BaseOIDCClient::oidcConfiguration
const std::shared_ptr< const tenduke::oidc::OIDCConfiguration > oidcConfiguration
OIDC-configuration.
Definition
BaseOIDCClient.h:71
tenduke::oidc::DefaultOIDCBrowserFlow::DEFAULT_NONCE_LENGTH
static const std::size_t DEFAULT_NONCE_LENGTH
Default nonce length.
Definition
DefaultOIDCBrowserFlow.h:32
tenduke::oidc::DefaultOIDCBrowserFlow::DefaultOIDCBrowserFlow
DefaultOIDCBrowserFlow(const std::shared_ptr< const tenduke::oidc::OIDCConfiguration > &oidcConfiguration, const std::shared_ptr< const tenduke::oauth::OAuthBrowserFlow > &oauthClient, const std::shared_ptr< tenduke::utl::random::RandomUrlSafeString > &randomUrlSafeString, const std::shared_ptr< const tenduke::jwt::JWTParser > &jwtParser, const std::shared_ptr< const tenduke::http::HTTPClient > &httpClient, size_t nonceLength=DEFAULT_NONCE_LENGTH)
Constructs new instance.
Definition
DefaultOIDCBrowserFlow.cpp:41
tenduke::oidc::DefaultOIDCBrowserFlow::generateNonce
std::string generateNonce() const
Generates nonce.
Definition
DefaultOIDCBrowserFlow.cpp:35
tenduke::oidc::DefaultOIDCBrowserFlow::authenticate
std::unique_ptr< const tenduke::oidc::OIDCBrowserFlowAuthenticationRequest > authenticate(const std::string &scopes) const override
Creates OIDCRequest which performs the OIDC-authentication.
Definition
DefaultOIDCBrowserFlow.cpp:28
tenduke::oidc::OIDCBrowserFlow
OpenID Connect -client.
Definition
OIDCBrowserFlow.h:22
tenduke::oidc
Implementation of OpenID Connect protocol.
Definition
AutoDiscovery.h:18
tenduke
Root for classes, functions and globals of 10Duke C++ Client.
Definition
APIRequest.h:4
core
oidc
core
src
oidc
impl
DefaultOIDCBrowserFlow.h
Generated by
1.17.0