AWS SDK for C++

AWS SDK for C++ Version 1.11.810

Loading...
Searching...
No Matches
SigV4AuthScheme.h
1
5#pragma once
6
7#include <smithy/identity/auth/AuthScheme.h>
8#include <smithy/identity/auth/built-in/SigV4AuthSchemeOption.h>
9
10#include <smithy/identity/resolver/built-in/DefaultAwsCredentialIdentityResolver.h>
11
12#include <smithy/identity/identity/AwsCredentialIdentityBase.h>
13#include <smithy/identity/signer/built-in/SigV4Signer.h>
14
15
16
17namespace smithy {
18 constexpr char SIGV4[] = "aws.auth#sigv4";
19
20 class SigV4AuthScheme : public AuthScheme<AwsCredentialIdentityBase>
21 {
22 public:
26
27 //This allows to override the identity resolver
28 explicit SigV4AuthScheme(std::shared_ptr<AwsCredentialIdentityResolverT> identityResolver,
29 const Aws::String& serviceName,
30 const Aws::String& region)
33 m_signer{Aws::MakeShared<AwsSigV4Signer>("SigV4AuthScheme", serviceName, region)}
34 {
35 assert(m_identityResolver);
36 assert(m_signer);
37 }
38
39 //delegate constructor
40 explicit SigV4AuthScheme(std::shared_ptr<AwsCredentialIdentityResolverT> identityResolver,
41 const Aws::String& serviceName,
42 const Aws::String& region,
44 bool urlEscapePath)
47 m_signer{Aws::MakeShared<AwsSigV4Signer>("SigV4AuthScheme", serviceName, region, policy, urlEscapePath)}
48 {
49 assert(m_identityResolver);
50 assert(m_signer);
51 }
52
53 //delegate constructor
54 explicit SigV4AuthScheme(const Aws::String& serviceName,
55 const Aws::String& region)
56 : SigV4AuthScheme(Aws::MakeShared<DefaultAwsCredentialIdentityResolver>("SigV4AuthScheme"),
57 serviceName,
58 region)
59 {
60 }
61
62 explicit SigV4AuthScheme(const Aws::String& serviceName, const Aws::String& region,
65 Aws::MakeShared<DefaultAwsCredentialIdentityResolver>("SigV4AuthScheme", config),
66 serviceName, region) {}
67
68 //For legacy constructors, signing requires additional input parameters
69 explicit SigV4AuthScheme(const Aws::String& serviceName,
70 const Aws::String& region,
72 bool urlEscapePath)
73 : SigV4AuthScheme(Aws::MakeShared<DefaultAwsCredentialIdentityResolver>("SigV4AuthScheme"),
74 serviceName,
75 region,
76 policy,
77 urlEscapePath)
78 {
79 }
80
81 virtual ~SigV4AuthScheme() = default;
82
83 std::shared_ptr<AwsCredentialIdentityResolverT> identityResolver() override
84 {
85 return m_identityResolver;
86 }
87
88 std::shared_ptr<AwsCredentialSignerT> signer() override
89 {
90 return m_signer;
91 }
92 protected:
93 std::shared_ptr<AwsCredentialIdentityResolverT> m_identityResolver;
94 std::shared_ptr<AwsCredentialSignerT> m_signer;
95 };
96}
SigV4AuthScheme(const Aws::String &serviceName, const Aws::String &region)
std::shared_ptr< AwsCredentialIdentityResolverT > m_identityResolver
SigV4AuthScheme(const Aws::String &serviceName, const Aws::String &region, const Aws::Client::ClientConfiguration::CredentialProviderConfiguration &config)
std::shared_ptr< AwsCredentialSignerT > m_signer
std::shared_ptr< AwsCredentialIdentityResolverT > identityResolver() override
SigV4AuthScheme(std::shared_ptr< AwsCredentialIdentityResolverT > identityResolver, const Aws::String &serviceName, const Aws::String &region, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy policy, bool urlEscapePath)
SigV4AuthScheme(const Aws::String &serviceName, const Aws::String &region, Aws::Client::AWSAuthV4Signer::PayloadSigningPolicy policy, bool urlEscapePath)
virtual ~SigV4AuthScheme()=default
std::shared_ptr< AwsCredentialSignerT > signer() override
SigV4AuthScheme(std::shared_ptr< AwsCredentialIdentityResolverT > identityResolver, const Aws::String &serviceName, const Aws::String &region)
std::basic_string< char, std::char_traits< char >, Aws::Allocator< char > > String
Definition AWSString.h:97
constexpr char SIGV4[]