Skip to content

Commit 99f5950

Browse files
davidh44dagnir
andauthored
Use createAnonymousCredentials() when AnonymousCredentialsProvider is passed in (#3385)
* Adding createAnonymousCredentials * adding createAnonymousCredentials * Adding createAnonymousCredentials() * adding usage of createAnonymousCredentials * Changelog entry for CRT version bump * version bump for CRT * Revert "Merge branch 'master' of github.com:aws/aws-sdk-java-v2 into createAnonymousCredentials" This reverts commit 7dc8409, reversing changes made to 3524907. * Revert "Revert "Merge branch 'master' of github.com:aws/aws-sdk-java-v2 into createAnonymousCredentials"" This reverts commit 6e236eb. * remove AWSCLIV2.pkg * Remove public modifier in tests to pass sonar cloud checks Co-authored-by: Dongie Agnir <[email protected]>
1 parent 4ff2f7c commit 99f5950

File tree

6 files changed

+45
-7
lines changed

6 files changed

+45
-7
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"category": "Amazon S3 Transfer Manager",
3+
"contributor": "",
4+
"type": "bugfix",
5+
"description": "Added usage of createAnonymousCredentials to fix issue where NPE was thrown when AnonymousCredentialsProvider was passed in"
6+
}
7+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"category": "AWS SDK for Java v2",
3+
"contributor": "",
4+
"type": "feature",
5+
"description": "Bump CRT version to 0.19.2"
6+
}

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@
113113
<rxjava.version>2.2.21</rxjava.version>
114114
<commons-codec.verion>1.10</commons-codec.verion>
115115
<jmh.version>1.29</jmh.version>
116-
<awscrt.version>0.19.0</awscrt.version>
116+
<awscrt.version>0.19.2</awscrt.version>
117117

118118
<!--Test dependencies -->
119119
<junit5.version>5.8.1</junit5.version>

services/s3/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,5 +143,6 @@
143143
<artifactId>eventstream</artifactId>
144144
<scope>test</scope>
145145
</dependency>
146+
146147
</dependencies>
147148
</project>

services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/CrtCredentialsProviderAdapter.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
import java.nio.charset.StandardCharsets;
2020
import software.amazon.awssdk.annotations.SdkInternalApi;
21+
import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider;
2122
import software.amazon.awssdk.auth.credentials.AwsCredentials;
2223
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
2324
import software.amazon.awssdk.auth.credentials.AwsSessionCredentials;
@@ -38,6 +39,11 @@ public CrtCredentialsProviderAdapter(AwsCredentialsProvider credentialsProvider)
3839
this.credentialsProvider = credentialsProvider;
3940
this.crtCredentials = new DelegateCredentialsProvider.DelegateCredentialsProviderBuilder()
4041
.withHandler(() -> {
42+
43+
if (credentialsProvider instanceof AnonymousCredentialsProvider) {
44+
return Credentials.createAnonymousCredentials();
45+
}
46+
4147
AwsCredentials sdkCredentials = credentialsProvider.resolveCredentials();
4248
byte[] accessKey = sdkCredentials.accessKeyId().getBytes(StandardCharsets.UTF_8);
4349
byte[] secreteKey = sdkCredentials.secretAccessKey().getBytes(StandardCharsets.UTF_8);
@@ -47,10 +53,10 @@ public CrtCredentialsProviderAdapter(AwsCredentialsProvider credentialsProvider)
4753
sessionTokens =
4854
((AwsSessionCredentials) sdkCredentials).sessionToken().getBytes(StandardCharsets.UTF_8);
4955
}
50-
5156
return new Credentials(accessKey,
52-
secreteKey,
53-
sessionTokens);
57+
secreteKey,
58+
sessionTokens);
59+
5460
}).build();
5561
}
5662

services/s3/src/test/java/software/amazon/awssdk/services/s3/internal/crt/CrtCredentialProviderAdapterTest.java

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.nio.charset.StandardCharsets;
2323
import org.junit.jupiter.api.Test;
2424
import org.mockito.Mockito;
25+
import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider;
2526
import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
2627
import software.amazon.awssdk.auth.credentials.AwsCredentials;
2728
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
@@ -35,7 +36,7 @@
3536
public class CrtCredentialProviderAdapterTest {
3637

3738
@Test
38-
public void crtCredentials_withSession_shouldConvert() {
39+
void crtCredentials_withSession_shouldConvert() {
3940
AwsCredentialsProvider awsCredentialsProvider = StaticCredentialsProvider
4041
.create(AwsSessionCredentials.create("foo", "bar", "session"));
4142

@@ -50,7 +51,7 @@ public void crtCredentials_withSession_shouldConvert() {
5051
}
5152

5253
@Test
53-
public void crtCredentials_withoutSession_shouldConvert() {
54+
void crtCredentials_withoutSession_shouldConvert() {
5455
AwsCredentialsProvider awsCredentialsProvider = StaticCredentialsProvider
5556
.create(AwsBasicCredentials.create("foo", "bar"));
5657

@@ -65,7 +66,7 @@ public void crtCredentials_withoutSession_shouldConvert() {
6566
}
6667

6768
@Test
68-
public void crtCredentials_provideAwsCredentials_shouldInvokeResolveAndClose() {
69+
void crtCredentials_provideAwsCredentials_shouldInvokeResolveAndClose() {
6970
AwsCredentialsProvider awsCredentialsProvider = Mockito.mock(HttpCredentialsProvider.class);
7071
AwsCredentials credentials = new AwsCredentials() {
7172
@Override
@@ -91,4 +92,21 @@ public String secretAccessKey() {
9192
adapter.close();
9293
verify((SdkAutoCloseable) awsCredentialsProvider).close();
9394
}
95+
96+
@Test
97+
void crtCredentials_anonymousCredentialsProvider_shouldWork() {
98+
AwsCredentialsProvider awsCredentialsProvider = AnonymousCredentialsProvider.create();
99+
100+
CrtCredentialsProviderAdapter adapter = new CrtCredentialsProviderAdapter(awsCredentialsProvider);
101+
CredentialsProvider crtCredentialsProvider = adapter.crtCredentials();
102+
103+
Credentials crtCredentials = crtCredentialsProvider.getCredentials().join();
104+
105+
assertThat(crtCredentials.getAccessKeyId()).isNull();
106+
assertThat(crtCredentials.getSecretAccessKey()).isNull();
107+
108+
}
109+
110+
111+
94112
}

0 commit comments

Comments
 (0)