10Duke Scale C++ Client
Loading...
Searching...
No Matches
OIDCLoginWithLoopbackRedirection.h
1#ifndef TENDUKE_OIDC_OIDCLOGINWITHLOOPBACKREDIRECTION_H
2#define TENDUKE_OIDC_OIDCLOGINWITHLOOPBACKREDIRECTION_H
3
4#include "oauth/OAuthConfiguration.h"
5#include "oidc/OIDCConfiguration.h"
6#include "oidc/OIDCClient.h"
7#include "oidc/OIDCClientFactory.h"
8#include "oidc/OIDCState.h"
9#include "oidc/session/OIDCLogin.h"
10#include "net/URLParser.h"
11#include "osa/BrowserIntegration.h"
12#include "http/server/AbstractHTTPServer.h"
13#include "http/server/HTTPServerFactory.h"
14#include "net/URLs.h"
15
16#include <cstdint>
17#include <memory>
18#include <future>
19
20namespace tenduke { namespace oidc { namespace osbrowser {
21
35
37
38public:
52 const tenduke::oauth::OAuthConfiguration &oauthConfiguration,
53 const std::shared_ptr<const tenduke::oidc::OIDCConfiguration> &oidcConfiguration,
54 std::string scope,
55 const std::shared_ptr<const tenduke::oidc::OIDCClientFactory> &oidcClientFactory,
56 const std::shared_ptr<const tenduke::osa::BrowserIntegration> &browser,
57 const std::shared_ptr<const tenduke::http::server::HTTPServerFactory> &httpServerFactory,
58 std::string responseMessage,
59 std::uint16_t httpServerPort,
60 const std::shared_ptr<const ::tenduke::net::URLs> &urls
61
62 );
63
64 // tenduke::oidc::OIDCLogin interface
65public:
66 std::unique_ptr<tenduke::oidc::OIDCLoginRequest> login() const override;
67
68protected:
75 virtual std::unique_ptr<tenduke::oauth::OAuthConfiguration> tweakOAuthConfiguration(std::uint16_t port) const;
76
77private:
78 const tenduke::oauth::OAuthConfiguration oauthConfiguration;
79 const std::shared_ptr<const tenduke::oidc::OIDCConfiguration> oidcConfiguration;
80 const std::string scope;
81 const std::string redirectUriPath;
87 const std::string responseMessage;
88 const std::uint16_t httpServerPort;
89
90 const std::shared_ptr<const tenduke::http::server::HTTPServerFactory> newHTTPServer;
91 const std::shared_ptr<const tenduke::oidc::OIDCClientFactory> newOidcClient;
92 const std::shared_ptr<const tenduke::osa::BrowserIntegration> browser;
93 const std::shared_ptr<const ::tenduke::net::URLs> urls;
94};
95
96}}}
97
98#endif //TENDUKE_OIDC_OIDCLOGINWITHLOOPBACKREDIRECTION_H
OIDCLoginWithLoopbackRedirection(const tenduke::oauth::OAuthConfiguration &oauthConfiguration, const std::shared_ptr< const tenduke::oidc::OIDCConfiguration > &oidcConfiguration, std::string scope, const std::shared_ptr< const tenduke::oidc::OIDCClientFactory > &oidcClientFactory, const std::shared_ptr< const tenduke::osa::BrowserIntegration > &browser, const std::shared_ptr< const tenduke::http::server::HTTPServerFactory > &httpServerFactory, std::string responseMessage, std::uint16_t httpServerPort, const std::shared_ptr< const ::tenduke::net::URLs > &urls)
Constructs new instance.
Definition OIDCLoginWithLoopbackRedirection.cpp:73
Container for OAuth-configuration.
Definition OAuthConfiguration.h:17
High-level service to perform OIDC-login.
Definition OIDCLogin.h:13
OIDCLoginWithLoopbackRedirection(const tenduke::oauth::OAuthConfiguration &oauthConfiguration, const std::shared_ptr< const tenduke::oidc::OIDCConfiguration > &oidcConfiguration, std::string scope, const std::shared_ptr< const tenduke::oidc::OIDCClientFactory > &oidcClientFactory, const std::shared_ptr< const tenduke::osa::BrowserIntegration > &browser, const std::shared_ptr< const tenduke::http::server::HTTPServerFactory > &httpServerFactory, std::string responseMessage, std::uint16_t httpServerPort, const std::shared_ptr< const ::tenduke::net::URLs > &urls)
Constructs new instance.
Definition OIDCLoginWithLoopbackRedirection.cpp:73
virtual std::unique_ptr< tenduke::oauth::OAuthConfiguration > tweakOAuthConfiguration(std::uint16_t port) const
Creates new OAuthConfiguration by replacing port to the redirectURI.
Definition OIDCLoginWithLoopbackRedirection.cpp:55
std::unique_ptr< tenduke::oidc::OIDCLoginRequest > login() const override
Starts the login process by creating a login request.
Definition OIDCLoginWithLoopbackRedirection.cpp:24
Services to perform OIDC-login using OS-browser with loopback redirection.
Definition BrowserAuthenticationConfig.h:9
Implementation of OpenID Connect protocol.
Definition AutoDiscovery.h:18
Root for classes, functions and globals of 10Duke C++ Client.
Definition AbstractClientFactory.h:16