@@ -32,7 +32,7 @@ using Aws::Utils::Threading::WriterLockGuard;
3232static const char STS_ASSUME_ROLE_WEB_IDENTITY_LOG_TAG[] = " STSAssumeRoleWithWebIdentityCredentialsProvider" ;
3333static 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