10Duke Scale C++ Client
Loading...
Searching...
No Matches
BaseOIDCRequest.h
1#ifndef TENDUKE_OIDC_BASEOIDCREQUEST_H
2#define TENDUKE_OIDC_BASEOIDCREQUEST_H
3
4#include "../OIDCConfiguration.h"
5#include "../OIDCState.h"
6#include "../idtoken/IdToken.h"
7#include "../../oauth/OAuthState.h"
8#include "jwt/JWTParser.h"
9
10#include <memory>
11
12namespace tenduke { namespace oidc {
13
18{
19public:
20 virtual ~BaseOIDCRequest() = default;
21
29 const std::shared_ptr<const tenduke::oidc::OIDCConfiguration> &oidcConfiguration,
30 const std::shared_ptr<const tenduke::jwt::JWTParser> &jwtParser,
31 std::string nonce
32 );
33
34protected:
40 virtual std::unique_ptr<tenduke::oidc::OIDCState> toOIDCState(tenduke::oauth::OAuthState &oauthState) const;
41
49 const std::string &serializedIdToken,
50 const std::string &expectedNonce
51 ) const;
52
53protected:
55 const std::shared_ptr<const tenduke::oidc::OIDCConfiguration> oidcConfiguration;
57 const std::shared_ptr<const tenduke::jwt::JWTParser> parseJWT;
58
59private:
60 // If .empty(), is not validated
61 const std::string nonce;
62};
63
64}}
65
66#endif //TENDUKE_OIDC_BASEOIDCREQUEST_H
OAuth session state.
Definition OAuthState.h:17
Base class for OIDC requests.
Definition BaseOIDCRequest.h:18
const std::shared_ptr< const tenduke::oidc::OIDCConfiguration > oidcConfiguration
OIDC-configuration.
Definition BaseOIDCRequest.h:55
const std::shared_ptr< const tenduke::jwt::JWTParser > parseJWT
JWT parser.
Definition BaseOIDCRequest.h:57
virtual tenduke::oidc::IdToken parseIdToken(const std::string &serializedIdToken, const std::string &expectedNonce) const
Parses id token.
Definition BaseOIDCRequest.cpp:19
virtual std::unique_ptr< tenduke::oidc::OIDCState > toOIDCState(tenduke::oauth::OAuthState &oauthState) const
Creates OIDCState from OAuthState.
Definition BaseOIDCRequest.cpp:76
OIDC ID-token.
Definition IdToken.h:15
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7