Skip to content

Commit 7c59805

Browse files
committed
Adding createAnonymousCredentials
1 parent b9d58c1 commit 7c59805

File tree

5 files changed

+77
-4
lines changed

5 files changed

+77
-4
lines changed

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.1</awscrt.version>
117117

118118
<!--Test dependencies -->
119119
<junit5.version>5.8.1</junit5.version>
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
package software.amazon.awssdk.transfer.s3;
17+
18+
import java.net.URI;
19+
import java.nio.file.Paths;
20+
import software.amazon.awssdk.auth.credentials.AnonymousCredentialsProvider;
21+
import software.amazon.awssdk.regions.Region;
22+
23+
// Reproduce Github customer's issue
24+
public class Main {
25+
public static void main(String[] args) {
26+
27+
S3TransferManager transferManager =
28+
S3TransferManager.builder()
29+
.s3ClientConfiguration(cfg -> cfg.credentialsProvider(AnonymousCredentialsProvider.create())
30+
.region(Region.EU_CENTRAL_1)
31+
.targetThroughputInGbps(20.0)
32+
.minimumPartSizeInBytes(10L * 1000)
33+
.maxConcurrency(8)
34+
.endpointOverride(URI.create("http://localhost:8080"))
35+
)
36+
.build();
37+
38+
transferManager.uploadFile(b -> b.source(Paths.get("file_path")));
39+
40+
41+
}
42+
}

services/s3/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,5 +143,11 @@
143143
<artifactId>eventstream</artifactId>
144144
<scope>test</scope>
145145
</dependency>
146+
<dependency>
147+
<groupId>com.amazonaws</groupId>
148+
<artifactId>aws-java-sdk-s3</artifactId>
149+
<version>1.11.404</version>
150+
<scope>compile</scope>
151+
</dependency>
146152
</dependencies>
147153
</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: 19 additions & 0 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;
@@ -91,4 +92,22 @@ public String secretAccessKey() {
9192
adapter.close();
9293
verify((SdkAutoCloseable) awsCredentialsProvider).close();
9394
}
95+
96+
@Test
97+
public 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+
112+
94113
}

0 commit comments

Comments
 (0)