10Duke Scale C++ Client
Loading...
Searching...
No Matches
DefaultOIDCClientFactory.h
1#ifndef TENDUKE_OIDC_DEFAULTOIDCCLIENTFACTORY_H
2#define TENDUKE_OIDC_DEFAULTOIDCCLIENTFACTORY_H
3
4#include "../OIDCClientFactory.h"
5#include "../../oauth/OAuthBrowserFlow.h"
6
7#include "crypto/MessageDigestFactory.h"
8#include "http/HTTPClient.h"
9#include "net/URLParser.h"
10#include "json/JSONParser.h"
11#include "jwt/JWTParserFactory.h"
12#include "time/Clock.h"
13#include "utl/Base64Encoder.h"
14#include "utl/random/RandomURLSafeString.h"
15
16#include <memory>
17
18namespace tenduke { namespace oidc {
19
24public:
37 const std::shared_ptr<const tenduke::http::HTTPClient> &httpClient,
38 const std::shared_ptr<const tenduke::net::URLParser> &urlParser,
39 const std::shared_ptr<const tenduke::json::JSONParser> &jsonParser,
40 const std::shared_ptr<const tenduke::utl::Base64Encoder> &base64Encoder,
41 const std::shared_ptr<const tenduke::crypto::MessageDigestFactory> &messageDigestFactory,
42 const std::shared_ptr<tenduke::time::Clock> &clock,
43 const std::shared_ptr<tenduke::utl::random::RandomUrlSafeString> &randomUrlSafeString,
44 const std::shared_ptr<const tenduke::jwt::JWTParserFactory> &jwtParserFactory
45 );
46
47 std::unique_ptr<tenduke::oidc::OIDCBrowserFlow> create(
48 std::shared_ptr<const tenduke::oauth::OAuthConfiguration> oauthConfiguration,
49 std::shared_ptr<const tenduke::oidc::OIDCConfiguration> oidcConfiguration
50 ) const override;
51 std::unique_ptr<tenduke::oidc::OIDCBrowserFlow> create(
52 const tenduke::oauth::OAuthClientConfiguration &oauthClientConfiguration,
53 const tenduke::oauth::OAuthBackendConfiguration &oauthBackendConfiguration,
54 std::shared_ptr<const tenduke::oidc::OIDCConfiguration> oidcConfiguration
55 ) const override;
56
57protected:
63 virtual std::unique_ptr<tenduke::oauth::OAuthBrowserFlow> createOAuthClient(std::shared_ptr<const tenduke::oauth::OAuthConfiguration> oauthConfiguration) const;
64
65private:
66 const std::shared_ptr<const tenduke::http::HTTPClient> httpClient;
67 const std::shared_ptr<const tenduke::net::URLParser> urlParser;
68 const std::shared_ptr<const tenduke::json::JSONParser> jsonParser;
69 const std::shared_ptr<const tenduke::utl::Base64Encoder> base64Encoder;
70 const std::shared_ptr<const tenduke::crypto::MessageDigestFactory> messageDigestFactory;
71 const std::shared_ptr<tenduke::time::Clock> clock;
72 const std::shared_ptr<tenduke::utl::random::RandomUrlSafeString> randomUrlSafeString;
73 const std::shared_ptr<const tenduke::jwt::JWTParserFactory> newJwtParser;
74};
75
76}}
77
78
79#endif //TENDUKE_OIDC_DEFAULTOIDCCLIENTFACTORY_H
Container for OAuth-backend configuration.
Definition OAuthBackendConfiguration.h:17
Container for OAuth-client-configuration.
Definition OAuthClientConfiguration.h:17
Default implementation of tenduke::oidc::OIDCClientFactory.
Definition DefaultOIDCClientFactory.h:23
std::unique_ptr< tenduke::oidc::OIDCBrowserFlow > create(const tenduke::oauth::OAuthClientConfiguration &oauthClientConfiguration, const tenduke::oauth::OAuthBackendConfiguration &oauthBackendConfiguration, std::shared_ptr< const tenduke::oidc::OIDCConfiguration > oidcConfiguration) const override
Creates new tenduke::oidc::OIDCClient for browser-based flow.
std::unique_ptr< tenduke::oidc::OIDCBrowserFlow > create(std::shared_ptr< const tenduke::oauth::OAuthConfiguration > oauthConfiguration, std::shared_ptr< const tenduke::oidc::OIDCConfiguration > oidcConfiguration) const override
Creates new tenduke::oidc::OIDCClient for browser-based flow.
virtual std::unique_ptr< tenduke::oauth::OAuthBrowserFlow > createOAuthClient(std::shared_ptr< const tenduke::oauth::OAuthConfiguration > oauthConfiguration) const
Creates OAUth client.
Definition DefaultOIDCClientFactory.cpp:51
Factory for creating tenduke::oidc::OIDCClient.
Definition OIDCClientFactory.h:17
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7