10Duke Scale C++ Client
Loading...
Searching...
No Matches
DefaultJWTToLease.h
1#ifndef TENDUKE_SE_LICENSING_DEFAULTJWTTOLEASE_H
2#define TENDUKE_SE_LICENSING_DEFAULTJWTTOLEASE_H
3
4#include "../../api/Lease.h"
5#include "../../api/licenses/JWTToLease.h"
6#include "json/JSONParser.h"
7#include "jwt/JWT.h"
8
9#include <memory>
10
11namespace tenduke { namespace se { namespace licensing {
12
17{
18public:
23 explicit DefaultJWTToLease(const std::shared_ptr<const ::tenduke::json::JSONParser> &jsonParser);
24
25 // `tenduke::se::licensing::JWTToLease` interface
26public:
32 std::string licenseToken,
33 std::string licenseKey,
34 bool metered
35 ) const override;
36
37protected:
39 std::vector<std::string> extractFeatures(const ::tenduke::jwt::JWT &jwt) const;
41 std::map<std::string, std::string> extractClientClaims(const ::tenduke::jwt::JWT &jwt) const;
42
43private:
44 const std::shared_ptr<const ::tenduke::json::JSONParser> parseJSON;
45};
46
47}}}
48
49#endif //TENDUKE_SE_LICENSING_DEFAULTJWTTOLEASE_H
Very simple JWT implementation.
Definition JWT.h:31
A tenduke::se::APIRequest, which uses tenduke::oidc::OIDCSession to maintain request authorization.
Definition StatefulAPIRequest.h:27
Default implementation of tenduke::se::licensing::JWTToLease.
Definition DefaultJWTToLease.h:17
::tenduke::se::licensing::Lease from(const tenduke::jwt::JWT &jwt, std::string licenseToken, std::string licenseKey, bool metered) const override
Converts the parsed token to lease.
Definition DefaultJWTToLease.cpp:15
std::map< std::string, std::string > extractClientClaims(const ::tenduke::jwt::JWT &jwt) const
Extracts client-claims from the JWT.
Definition DefaultJWTToLease.cpp:72
std::vector< std::string > extractFeatures(const ::tenduke::jwt::JWT &jwt) const
Extracts features from the JWT.
Definition DefaultJWTToLease.cpp:53
Converts parsed license token into tenduke::se::licensing::Lease.
Definition JWTToLease.h:13
Lease of a license.
Definition Lease.h:17
Support for JSON Web Tokens.
Definition DefaultJWTParser.h:11
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7