diff --git a/.changes/next-release/bugfix-AmazonS3-c6497dc.json b/.changes/next-release/bugfix-AmazonS3-c6497dc.json new file mode 100644 index 000000000000..e731a4df6d5c --- /dev/null +++ b/.changes/next-release/bugfix-AmazonS3-c6497dc.json @@ -0,0 +1,6 @@ +{ + "type": "bugfix", + "category": "Amazon S3", + "contributor": "", + "description": "Fix NullPointerException when using AnonymousCredentials in a CredentialsChain with the S3 CRT Client." +} diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/CrtCredentialsProviderAdapter.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/CrtCredentialsProviderAdapter.java index d807b61235f8..726fff708030 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/CrtCredentialsProviderAdapter.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/crt/CrtCredentialsProviderAdapter.java @@ -48,6 +48,11 @@ public CrtCredentialsProviderAdapter(IdentityProvider awsCredentialsProvider = + AwsCredentialsProviderChain + .builder() + .addCredentialsProvider(AnonymousCredentialsProvider.create()) + .build(); + + CrtCredentialsProviderAdapter adapter = new CrtCredentialsProviderAdapter(awsCredentialsProvider); + CredentialsProvider crtCredentialsProvider = adapter.crtCredentials(); + + Credentials crtCredentials = crtCredentialsProvider.getCredentials().join(); + + assertThat(crtCredentials.getAccessKeyId()).isNull(); + assertThat(crtCredentials.getSecretAccessKey()).isNull(); + } }