44 inline static const std::string kAuthType =
"rest.auth.type";
45 inline static const std::string kAuthTypeNone =
"none";
46 inline static const std::string kAuthTypeBasic =
"basic";
47 inline static const std::string kAuthTypeOAuth2 =
"oauth2";
48 inline static const std::string kAuthTypeSigV4 =
"sigv4";
52 inline static const std::string kBasicUsername =
"rest.auth.basic.username";
53 inline static const std::string kBasicPassword =
"rest.auth.basic.password";
59 inline static const std::string kSigV4Enabled =
"rest.sigv4-enabled";
60 inline static const std::string kSigV4DelegateAuthType =
61 "rest.auth.sigv4.delegate-auth-type";
66 inline static const std::string kSigV4SigningRegion =
"rest.signing-region";
67 inline static const std::string kSigV4SigningName =
"rest.signing-name";
68 inline static const std::string kSigV4SigningNameDefault =
"execute-api";
69 inline static const std::string kSigV4AccessKeyId =
"rest.access-key-id";
70 inline static const std::string kSigV4SecretAccessKey =
"rest.secret-access-key";
71 inline static const std::string kSigV4SessionToken =
"rest.session-token";
75 inline static Entry<std::string> kToken{
"token",
""};
76 inline static Entry<std::string> kCredential{
"credential",
""};
77 inline static Entry<std::string> kScope{
"scope",
"catalog"};
78 inline static Entry<std::string> kOAuth2ServerUri{
"oauth2-server-uri",
80 inline static Entry<bool> kKeepRefreshed{
"token-refresh-enabled",
true};
84 inline static Entry<bool> kExchangeEnabled{
"token-exchange-enabled",
true};
86 inline static Entry<std::string> kAudience{
"audience",
""};
87 inline static Entry<std::string> kResource{
"resource",
""};
91 inline static Entry<int64_t> kSessionTimeoutMs{
"auth.session-timeout-ms", 3'600'000};
95 inline static const std::string kAccessTokenType =
96 "urn:ietf:params:oauth:token-type:access_token";
97 inline static const std::string kRefreshTokenType =
98 "urn:ietf:params:oauth:token-type:refresh_token";
99 inline static const std::string kIdTokenType =
100 "urn:ietf:params:oauth:token-type:id_token";
101 inline static const std::string kSaml1TokenType =
102 "urn:ietf:params:oauth:token-type:saml1";
103 inline static const std::string kSaml2TokenType =
104 "urn:ietf:params:oauth:token-type:saml2";
105 inline static const std::string kJwtTokenType =
"urn:ietf:params:oauth:token-type:jwt";
109 const std::unordered_map<std::string, std::string>& properties);
112 std::string
token()
const {
return Get(kToken); }
116 std::string
scope()
const {
return Get(kScope); }
125 const std::string&
client_id()
const {
return client_id_; }
133 std::string client_id_;
134 std::string client_secret_;
135 std::string token_type_;
136 std::optional<int64_t> expires_at_millis_;