Skip to content

Commit 810c829

Browse files
committed
Re-resolve SSO access token on each credential refresh instead of caching it at construction time
1 parent 12b31e8 commit 810c829

3 files changed

Lines changed: 817 additions & 7 deletions

File tree

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "bugfix",
3+
"category": "AWS SDK for Java v2",
4+
"contributor": "",
5+
"description": "Re-resolve SSO access token on each credential refresh in the SSOCredentialsProvider instead of caching it at construction time ensuring that refreshed tokens (for example from running `aws sso login`) are always used."
6+
}

services/sso/src/main/java/software/amazon/awssdk/services/sso/auth/SsoProfileCredentialsProviderFactory.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -102,11 +102,12 @@ private SsoProfileCredentialsProvider(ProfileProviderCredentialsContext credenti
102102
.accountId(ssoAccountId)
103103
.roleName(ssoRoleName)
104104
.build();
105-
SdkToken sdkToken = tokenProvider.resolveToken();
106-
Validate.paramNotNull(sdkToken, "Token provided by the TokenProvider is null");
107-
Supplier<GetRoleCredentialsRequest> supplier = () -> request.toBuilder()
108-
.accessToken(sdkToken.token())
109-
.build();
105+
Supplier<GetRoleCredentialsRequest> supplier = () -> {
106+
SdkToken token = tokenProvider.resolveToken();
107+
return request.toBuilder()
108+
.accessToken(token.token())
109+
.build();
110+
};
110111

111112

112113
this.credentialsProvider = SsoCredentialsProvider.builder()

0 commit comments

Comments
 (0)