Skip to content

Commit 37c8c1d

Browse files
committed
Support passing ClientConfiguration to web identity credentials provider.
1 parent e9ec9c4 commit 37c8c1d

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

src/aws-cpp-sdk-core/include/aws/core/auth/STSCredentialsProvider.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ namespace Aws
2525
class AWS_CORE_API STSAssumeRoleWebIdentityCredentialsProvider : public AWSCredentialsProvider
2626
{
2727
public:
28-
STSAssumeRoleWebIdentityCredentialsProvider();
28+
STSAssumeRoleWebIdentityCredentialsProvider(Aws::Client::ClientConfiguration config = {});
2929

3030
/**
3131
* Retrieves the credentials if found, otherwise returns empty credential set.

src/aws-cpp-sdk-core/source/auth/STSCredentialsProvider.cpp

+7-6
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ using Aws::Utils::Threading::WriterLockGuard;
3232
static const char STS_ASSUME_ROLE_WEB_IDENTITY_LOG_TAG[] = "STSAssumeRoleWithWebIdentityCredentialsProvider";
3333
static const int STS_CREDENTIAL_PROVIDER_EXPIRATION_GRACE_PERIOD = 5 * 1000;
3434

35-
STSAssumeRoleWebIdentityCredentialsProvider::STSAssumeRoleWebIdentityCredentialsProvider() :
35+
STSAssumeRoleWebIdentityCredentialsProvider::STSAssumeRoleWebIdentityCredentialsProvider(Aws::Client::ClientConfiguration config) :
3636
m_initialized(false)
3737
{
3838
// check environment variables
@@ -97,15 +97,16 @@ STSAssumeRoleWebIdentityCredentialsProvider::STSAssumeRoleWebIdentityCredentials
9797
AWS_LOGSTREAM_DEBUG(STS_ASSUME_ROLE_WEB_IDENTITY_LOG_TAG, "Resolved session_name from profile_config or environment variable to be " << m_sessionName);
9898
}
9999

100-
Aws::Client::ClientConfiguration config;
101100
config.scheme = Aws::Http::Scheme::HTTPS;
102101
config.region = tmpRegion;
103102

104-
Aws::Vector<Aws::String> retryableErrors;
105-
retryableErrors.push_back("IDPCommunicationError");
106-
retryableErrors.push_back("InvalidIdentityToken");
103+
if (config.retryStrategy == nullptr) {
104+
Aws::Vector<Aws::String> retryableErrors;
105+
retryableErrors.push_back("IDPCommunicationError");
106+
retryableErrors.push_back("InvalidIdentityToken");
107107

108-
config.retryStrategy = Aws::MakeShared<SpecifiedRetryableErrorsRetryStrategy>(STS_ASSUME_ROLE_WEB_IDENTITY_LOG_TAG, retryableErrors, 3/*maxRetries*/);
108+
config.retryStrategy = Aws::MakeShared<SpecifiedRetryableErrorsRetryStrategy>(STS_ASSUME_ROLE_WEB_IDENTITY_LOG_TAG, retryableErrors, 3/*maxRetries*/);
109+
}
109110

110111
m_client = Aws::MakeUnique<Aws::Internal::STSCredentialsClient>(STS_ASSUME_ROLE_WEB_IDENTITY_LOG_TAG, config);
111112
m_initialized = true;

0 commit comments

Comments
 (0)