34
34
#end
35
35
#if($serviceNamespace == "S3Crt")
36
36
#set($clientConfigurationNamespace = $serviceNamespace)
37
- #set($credentialsParam = ", m_credProvider")
38
- #set($credentialsArg = ", const std::shared_ptr<Aws::Auth::AWSCredentialsProvider> credentialsProvider")
39
- #set($defaultCredentialsProviderChainParam = "m_credProvider")
40
- #set($defaultCredentialsProviderChainMember = ", m_credProvider(Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG))")
41
- #set($simpleCredentialsProviderParam = "m_credProvider")
42
- #set($simpleCredentialsProviderMember = ", m_credProvider(Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials))")
43
- #set($credentialsProviderMember = ", m_credProvider(credentialsProvider)")
37
+ #set($credentialsParam = ", &credentials")
38
+ #set($getAWSCredentials = "Aws::Auth::AWSCredentials credentials = credentialsProvider->GetAWSCredentials();
39
+ ")
40
+ #set($credentialsArg = ", const Aws::Auth::AWSCredentials* credentials")
44
41
#else
45
42
#set($clientConfigurationNamespace = "Client")
46
43
#set($credentialsParam = "")
44
+ #set($getAWSCredentials = "")
47
45
#set($credentialsArg = "")
48
- #set($defaultCredentialsProviderChainParam = "Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG)")
49
- #set($defaultCredentialsProviderChainMember = "")
50
- #set($simpleCredentialsProviderParam = "Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials)")
51
- #set($simpleCredentialsProviderMember = "")
52
- #set($credentialsProviderMember = "")
53
46
#end
54
47
#set($hasEventStreamInputOperation = false)
55
48
#foreach($operation in $serviceModel.operations)
61
54
#if($hasEventStreamInputOperation || $multiRegionAccessPointSupported)
62
55
${className}::${className}(const ${clientConfigurationNamespace}::ClientConfiguration& clientConfiguration${signPayloads}${virtualAddressing}${USEast1RegionalEndpointArgString}) :
63
56
BASECLASS(clientConfiguration,
64
- Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG, ${defaultCredentialsProviderChainParam} ,
57
+ Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG, Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG) ,
65
58
SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
66
59
Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
67
- m_executor(clientConfiguration.executor)${defaultCredentialsProviderChainMember}${ virtualAddressingInit}${USEast1RegionalEndpointInitString}
60
+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
68
61
{
69
- init(clientConfiguration${credentialsParam} );
62
+ init(clientConfiguration);
70
63
}
71
64
72
65
${className}::${className}(const AWSCredentials& credentials, const ${clientConfigurationNamespace}::ClientConfiguration& clientConfiguration${signPayloads}${virtualAddressing}${USEast1RegionalEndpointArgString}) :
73
66
BASECLASS(clientConfiguration,
74
- Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG, ${simpleCredentialsProviderParam} ,
67
+ Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG, Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials) ,
75
68
SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
76
69
Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
77
- m_executor(clientConfiguration.executor)${simpleCredentialsProviderMember}${ virtualAddressingInit}${USEast1RegionalEndpointInitString}
70
+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
78
71
{
79
72
init(clientConfiguration${credentialsParam});
80
73
}
@@ -85,27 +78,27 @@ ${className}::${className}(const std::shared_ptr<AWSCredentialsProvider>& creden
85
78
Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG, credentialsProvider,
86
79
SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
87
80
Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
88
- m_executor(clientConfiguration.executor)${credentialsProviderMember}${ virtualAddressingInit}${USEast1RegionalEndpointInitString}
81
+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
89
82
{
90
- init(clientConfiguration${credentialsParam});
83
+ ${getAWSCredentials} init(clientConfiguration${credentialsParam});
91
84
}
92
85
#else
93
86
${className}::${className}(const ${clientConfigurationNamespace}::ClientConfiguration& clientConfiguration${signPayloads}${virtualAddressing}${USEast1RegionalEndpointArgString}) :
94
87
BASECLASS(clientConfiguration,
95
- Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, ${defaultCredentialsProviderChainParam} ,
88
+ Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG) ,
96
89
SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
97
90
Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
98
- m_executor(clientConfiguration.executor)${defaultCredentialsProviderChainMember}${ virtualAddressingInit}${USEast1RegionalEndpointInitString}
91
+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
99
92
{
100
- init(clientConfiguration${credentialsParam} );
93
+ init(clientConfiguration);
101
94
}
102
95
103
96
${className}::${className}(const AWSCredentials& credentials, const ${clientConfigurationNamespace}::ClientConfiguration& clientConfiguration${signPayloads}${virtualAddressing}${USEast1RegionalEndpointArgString}) :
104
97
BASECLASS(clientConfiguration,
105
- Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, ${simpleCredentialsProviderParam} ,
98
+ Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials) ,
106
99
SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
107
100
Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
108
- m_executor(clientConfiguration.executor)${simpleCredentialsProviderMember}${ virtualAddressingInit}${USEast1RegionalEndpointInitString}
101
+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
109
102
{
110
103
init(clientConfiguration${credentialsParam});
111
104
}
@@ -116,9 +109,9 @@ ${className}::${className}(const std::shared_ptr<AWSCredentialsProvider>& creden
116
109
Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, credentialsProvider,
117
110
SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
118
111
Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
119
- m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}${credentialsProviderMember}
112
+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
120
113
{
121
- init(clientConfiguration${credentialsParam});
114
+ ${getAWSCredentials} init(clientConfiguration${credentialsParam});
122
115
}
123
116
#end
124
117
@@ -198,18 +191,23 @@ void ${className}::init(const ${clientConfigurationNamespace}::ClientConfigurati
198
191
Aws::Crt::Io::ClientBootstrap* clientBootstrap = config.clientBootstrap ? config.clientBootstrap.get() : Aws::GetDefaultClientBootstrap();
199
192
s3CrtConfig.client_bootstrap = clientBootstrap->GetUnderlyingHandle();
200
193
201
- m_crtCredProvider = Aws::Crt::Auth::CredentialsProvider::CreateCredentialsProviderDelegate({
202
- std::bind([](const std::shared_ptr<AWSCredentialsProvider>& provider) {
203
- AWSCredentials credentials = provider->GetAWSCredentials();
204
- return Aws::MakeShared<Aws::Crt::Auth::Credentials>(ALLOCATION_TAG,
205
- *Aws::MakeShared<Aws::Crt::ByteCursor>(ALLOCATION_TAG, Aws::Crt::ByteCursorFromCString(credentials.GetAWSAccessKeyId().c_str())),
206
- *Aws::MakeShared<Aws::Crt::ByteCursor>(ALLOCATION_TAG, Aws::Crt::ByteCursorFromCString(credentials.GetAWSSecretKey().c_str())),
207
- *Aws::MakeShared<Aws::Crt::ByteCursor>(ALLOCATION_TAG, Aws::Crt::ByteCursorFromCString(credentials.GetSessionToken().c_str())),
208
- credentials.GetExpiration().Millis());
209
- }, credentialsProvider)
210
- });
194
+ std::shared_ptr<Aws::Crt::Auth::ICredentialsProvider> provider(nullptr);
195
+ if (credentials)
196
+ {
197
+ Aws::Crt::Auth::CredentialsProviderStaticConfig staticCreds;
198
+ staticCreds.AccessKeyId = Aws::Crt::ByteCursorFromCString(credentials->GetAWSAccessKeyId().c_str());
199
+ staticCreds.SecretAccessKey = Aws::Crt::ByteCursorFromCString(credentials->GetAWSSecretKey().c_str());
200
+ staticCreds.SessionToken = Aws::Crt::ByteCursorFromCString(credentials->GetSessionToken().c_str());
201
+ provider = Aws::Crt::Auth::CredentialsProvider::CreateCredentialsProviderStatic(staticCreds);
202
+ }
203
+ else
204
+ {
205
+ Aws::Crt::Auth::CredentialsProviderChainDefaultConfig credsConfig;
206
+ credsConfig.Bootstrap = clientBootstrap;
207
+ provider = Aws::Crt::Auth::CredentialsProvider::CreateCredentialsProviderChainDefault(credsConfig);
208
+ }
211
209
212
- aws_s3_init_default_signing_config(&m_s3CrtSigningConfig, Aws::Crt::ByteCursorFromCString(config.region.c_str()), m_crtCredProvider ->GetUnderlyingHandle());
210
+ aws_s3_init_default_signing_config(&m_s3CrtSigningConfig, Aws::Crt::ByteCursorFromCString(config.region.c_str()), provider ->GetUnderlyingHandle());
213
211
m_s3CrtSigningConfig.flags.use_double_uri_encode = false;
214
212
s3CrtConfig.signing_config = &m_s3CrtSigningConfig;
215
213
0 commit comments