10Duke Scale C++ Client
Loading...
Searching...
No Matches
JWT.h
1#ifndef TENDUKE_JWT_JWT_H
2#define TENDUKE_JWT_JWT_H
3
4#include <cstdint>
5#include <map>
6#include <string>
7
8namespace tenduke { namespace jwt {
9
11const std::string CLAIM_JTI = "jti";
13const std::string CLAIM_ISS = "iss";
15const std::string CLAIM_SUB = "sub";
17const std::string CLAIM_AUD = "aud";
19const std::string CLAIM_EXP = "exp";
21const std::string CLAIM_IAT = "iat";
22
24const std::string STRING_NOT_PRESENT;
25
30class JWT
31{
32public:
34 static const std::int64_t NUMBER_NOT_PRESENT = INT64_MIN;
35
40 explicit JWT(std::map<std::string, std::string> claims);
41
47 JWT(
48 const std::map<std::string, std::string> &claims,
49 const std::map<std::string, std::string> &headerParameters
50 );
51
56 JWT(const JWT &copy);
57
63 bool hasClaim(const std::string &name) const;
64
70 const std::string * claim(const std::string &name) const;
71
76 const std::map<std::string, std::string> & getClaims() const {return claims;};
77
83 const std::string & getStringClaim(const std::string & claimName) const;
84
90 std::int64_t getIntClaim(const std::string & claimName) const;
91
96 const std::string & getJWTID() const;
97
102 const std::string & getIssuer() const;
103
108 const std::string & getSubject() const;
109
114 const std::string & getAudience() const;
115
120 std::int64_t getExpirationTime() const;
121
126 std::int64_t getIssuedAt() const;
127
132 std::string getHeaderParameterKID() const;
133
138 std::map<std::string, std::string> getHeaderParameters() const;
139
145 bool isInfinite() const;
146
147protected:
149 std::map<std::string, std::string> claims;
151 std::map<std::string, std::string> headerParameters;
152};
153
154
155}}
156
157#endif // TENDUKE_JWT_JWT_H
Very simple JWT implementation.
Definition JWT.h:31
const std::string & getJWTID() const
Returns "JWT ID", "jti"-claim.
Definition JWT.cpp:67
const std::string & getAudience() const
Returns "Audience", "aud"-claim.
Definition JWT.cpp:85
const std::map< std::string, std::string > & getClaims() const
Returns all claims as a map.
Definition JWT.h:76
static const std::int64_t NUMBER_NOT_PRESENT
Magic value to indicate that numeric claim is not present.
Definition JWT.h:34
std::map< std::string, std::string > headerParameters
Header parameters.
Definition JWT.h:151
const std::string & getIssuer() const
Returns "Issuer", "iss"-claim.
Definition JWT.cpp:73
std::string getHeaderParameterKID() const
Returns header-parameter KeyId ("kid"-parameter).
Definition JWT.cpp:109
std::map< std::string, std::string > claims
Claims.
Definition JWT.h:149
std::int64_t getIntClaim(const std::string &claimName) const
Returns claim value as std::int64_t.
Definition JWT.cpp:55
std::int64_t getIssuedAt() const
Returns "Issued at", "iat"-claim.
Definition JWT.cpp:97
std::map< std::string, std::string > getHeaderParameters() const
Returns header parameters.
Definition JWT.cpp:103
const std::string & getSubject() const
Returns "Subject", "sub"-claim.
Definition JWT.cpp:79
const std::string & getStringClaim(const std::string &claimName) const
Returns a claim value as string.
Definition JWT.cpp:43
std::int64_t getExpirationTime() const
Returns "Expiration time", "exp"-claim.
Definition JWT.cpp:91
bool isInfinite() const
Returns true if token does expire.
Definition JWT.cpp:121
const std::string * claim(const std::string &name) const
Returns a JWT-claim by given name.
Definition JWT.cpp:31
bool hasClaim(const std::string &name) const
Checks if the JWT has given claim.
Definition JWT.cpp:25
Support for JSON Web Tokens.
Definition DefaultJWTParser.h:11
const std::string CLAIM_AUD
Claim name for "Audience".
Definition JWT.h:17
const std::string CLAIM_EXP
Claim name for "Expiration time".
Definition JWT.h:19
const std::string CLAIM_JTI
Claim name for "JWT ID".
Definition JWT.h:11
const std::string CLAIM_IAT
Claim name for "Issued at".
Definition JWT.h:21
const std::string CLAIM_SUB
Claim name for "Subject".
Definition JWT.h:15
const std::string STRING_NOT_PRESENT
Magic value to indicate that a string value is not present.
Definition JWT.h:24
const std::string CLAIM_ISS
Claim name for "Issuer".
Definition JWT.h:13
Root for classes, functions and globals of 10Duke C++ Client.
Definition BackendConfiguration.h:7