Skip to content

Commit c0b20ea

Browse files
authored
Skip avoidable conversion in CredentialsUtils (#3878)
1 parent 53f5cb3 commit c0b20ea

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

core/auth/src/main/java/software/amazon/awssdk/auth/credentials/CredentialUtils.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ public static AwsCredentialsProvider toCredentialsProvider(
9797
if (identityProvider == null) {
9898
return null;
9999
}
100+
if (identityProvider instanceof AwsCredentialsProvider) {
101+
return (AwsCredentialsProvider) identityProvider;
102+
}
100103
return () -> {
101104
// TODO: Exception handling for CompletionException thrown from join?
102105
AwsCredentialsIdentity awsCredentialsIdentity = identityProvider.resolveIdentity().join();

core/auth/src/test/java/software/amazon/awssdk/auth/credentials/CredentialUtilsTest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import org.junit.jupiter.api.Test;
2121
import software.amazon.awssdk.identity.spi.AwsCredentialsIdentity;
2222
import software.amazon.awssdk.identity.spi.AwsSessionCredentialsIdentity;
23+
import software.amazon.awssdk.identity.spi.IdentityProvider;
2324

2425
public class CredentialUtilsTest {
2526

@@ -83,7 +84,7 @@ public String sessionToken() {
8384
}
8485

8586
@Test
86-
public void toCredentials_AwsCredentials_doesNotCreateNewObject() {
87+
public void toCredentials_AwsCredentials_returnsAsIs() {
8788
AwsCredentialsIdentity input = AwsBasicCredentials.create("ak", "sk");
8889
AwsCredentials output = CredentialUtils.toCredentials(input);
8990
assertThat(output).isSameAs(input);
@@ -130,6 +131,14 @@ public void toCredentialsProvider_null_returnsNull() {
130131
assertThat(CredentialUtils.toCredentialsProvider(null)).isNull();
131132
}
132133

134+
@Test
135+
public void toCredentialsProvider_AwsCredentialsProvider_returnsAsIs() {
136+
IdentityProvider<AwsCredentialsIdentity> input =
137+
StaticCredentialsProvider.create(AwsBasicCredentials.create("akid", "skid"));
138+
AwsCredentialsProvider output = CredentialUtils.toCredentialsProvider(input);
139+
assertThat(output).isSameAs(input);
140+
}
141+
133142
@Test
134143
public void toCredentialsProvider_IdentityProvider_converts() {
135144
AwsCredentialsProvider credentialsProvider = CredentialUtils.toCredentialsProvider(

0 commit comments

Comments
 (0)