3434#end
3535#if($serviceNamespace == "S3Crt")
3636#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")
4441#else
4542#set($clientConfigurationNamespace = "Client")
4643#set($credentialsParam = "")
44+ #set($getAWSCredentials = "")
4745#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 = "")
5346#end
5447#set($hasEventStreamInputOperation = false)
5548#foreach($operation in $serviceModel.operations)
6154#if($hasEventStreamInputOperation || $multiRegionAccessPointSupported)
6255${className}::${className}(const ${clientConfigurationNamespace}::ClientConfiguration& clientConfiguration${signPayloads}${virtualAddressing}${USEast1RegionalEndpointArgString}) :
6356 BASECLASS(clientConfiguration,
64- Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG, ${defaultCredentialsProviderChainParam} ,
57+ Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG, Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG) ,
6558 SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
6659 Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
67- m_executor(clientConfiguration.executor)${defaultCredentialsProviderChainMember}${ virtualAddressingInit}${USEast1RegionalEndpointInitString}
60+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
6861{
69- init(clientConfiguration${credentialsParam} );
62+ init(clientConfiguration);
7063}
7164
7265${className}::${className}(const AWSCredentials& credentials, const ${clientConfigurationNamespace}::ClientConfiguration& clientConfiguration${signPayloads}${virtualAddressing}${USEast1RegionalEndpointArgString}) :
7366 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) ,
7568 SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
7669 Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
77- m_executor(clientConfiguration.executor)${simpleCredentialsProviderMember}${ virtualAddressingInit}${USEast1RegionalEndpointInitString}
70+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
7871{
7972 init(clientConfiguration${credentialsParam});
8073}
@@ -85,27 +78,27 @@ ${className}::${className}(const std::shared_ptr<AWSCredentialsProvider>& creden
8578 Aws::MakeShared<Aws::Auth::DefaultAuthSignerProvider>(ALLOCATION_TAG, credentialsProvider,
8679 SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
8780 Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
88- m_executor(clientConfiguration.executor)${credentialsProviderMember}${ virtualAddressingInit}${USEast1RegionalEndpointInitString}
81+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
8982{
90- init(clientConfiguration${credentialsParam});
83+ ${getAWSCredentials} init(clientConfiguration${credentialsParam});
9184}
9285#else
9386${className}::${className}(const ${clientConfigurationNamespace}::ClientConfiguration& clientConfiguration${signPayloads}${virtualAddressing}${USEast1RegionalEndpointArgString}) :
9487 BASECLASS(clientConfiguration,
95- Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, ${defaultCredentialsProviderChainParam} ,
88+ Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<DefaultAWSCredentialsProviderChain>(ALLOCATION_TAG) ,
9689 SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
9790 Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
98- m_executor(clientConfiguration.executor)${defaultCredentialsProviderChainMember}${ virtualAddressingInit}${USEast1RegionalEndpointInitString}
91+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
9992{
100- init(clientConfiguration${credentialsParam} );
93+ init(clientConfiguration);
10194}
10295
10396${className}::${className}(const AWSCredentials& credentials, const ${clientConfigurationNamespace}::ClientConfiguration& clientConfiguration${signPayloads}${virtualAddressing}${USEast1RegionalEndpointArgString}) :
10497 BASECLASS(clientConfiguration,
105- Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, ${simpleCredentialsProviderParam} ,
98+ Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, Aws::MakeShared<SimpleAWSCredentialsProvider>(ALLOCATION_TAG, credentials) ,
10699 SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
107100 Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
108- m_executor(clientConfiguration.executor)${simpleCredentialsProviderMember}${ virtualAddressingInit}${USEast1RegionalEndpointInitString}
101+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
109102{
110103 init(clientConfiguration${credentialsParam});
111104}
@@ -116,9 +109,9 @@ ${className}::${className}(const std::shared_ptr<AWSCredentialsProvider>& creden
116109 Aws::MakeShared<AWSAuthV4Signer>(ALLOCATION_TAG, credentialsProvider,
117110 SERVICE_NAME, Aws::Region::ComputeSignerRegion(clientConfiguration.region)${signPayloadsParam}${doubleEncodeValue}),
118111 Aws::MakeShared<${metadata.classNamePrefix}ErrorMarshaller>(ALLOCATION_TAG)),
119- m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}${credentialsProviderMember}
112+ m_executor(clientConfiguration.executor)${virtualAddressingInit}${USEast1RegionalEndpointInitString}
120113{
121- init(clientConfiguration${credentialsParam});
114+ ${getAWSCredentials} init(clientConfiguration${credentialsParam});
122115}
123116#end
124117
@@ -198,18 +191,23 @@ void ${className}::init(const ${clientConfigurationNamespace}::ClientConfigurati
198191 Aws::Crt::Io::ClientBootstrap* clientBootstrap = config.clientBootstrap ? config.clientBootstrap.get() : Aws::GetDefaultClientBootstrap();
199192 s3CrtConfig.client_bootstrap = clientBootstrap->GetUnderlyingHandle();
200193
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+ }
211209
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());
213211 m_s3CrtSigningConfig.flags.use_double_uri_encode = false;
214212 s3CrtConfig.signing_config = &m_s3CrtSigningConfig;
215213
0 commit comments