This is an automated email from the ASF dual-hosted git repository.
hong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-connector-aws.git
The following commit(s) were added to refs/heads/main by this push:
new 5e1d76d [FLINK-32964][Connectors/AWS] Ensure that new instance of
DefaultCredentialsProvider is created for each client
5e1d76d is described below
commit 5e1d76d3d935627cc542fafef4df6c8604a3713d
Author: Aleksandr Pilipenko <[email protected]>
AuthorDate: Mon Feb 12 18:18:31 2024 +0000
[FLINK-32964][Connectors/AWS] Ensure that new instance of
DefaultCredentialsProvider is created for each client
---
.../apache/flink/connector/aws/util/AWSGeneralUtil.java | 4 +++-
.../flink/connector/aws/util/AWSGeneralUtilTest.java | 15 +++++++++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git
a/flink-connector-aws-base/src/main/java/org/apache/flink/connector/aws/util/AWSGeneralUtil.java
b/flink-connector-aws-base/src/main/java/org/apache/flink/connector/aws/util/AWSGeneralUtil.java
index 436c9b2..40281bd 100644
---
a/flink-connector-aws-base/src/main/java/org/apache/flink/connector/aws/util/AWSGeneralUtil.java
+++
b/flink-connector-aws-base/src/main/java/org/apache/flink/connector/aws/util/AWSGeneralUtil.java
@@ -171,7 +171,9 @@ public class AWSGeneralUtil {
configPrefix);
case AUTO:
- return DefaultCredentialsProvider.create();
+ // Using builder instead of DefaultCredentialsProvider.create
+ // to get new instance for each call.
+ return DefaultCredentialsProvider.builder().build();
default:
throw new IllegalArgumentException(
diff --git
a/flink-connector-aws-base/src/test/java/org/apache/flink/connector/aws/util/AWSGeneralUtilTest.java
b/flink-connector-aws-base/src/test/java/org/apache/flink/connector/aws/util/AWSGeneralUtilTest.java
index c24f6ab..859144f 100644
---
a/flink-connector-aws-base/src/test/java/org/apache/flink/connector/aws/util/AWSGeneralUtilTest.java
+++
b/flink-connector-aws-base/src/test/java/org/apache/flink/connector/aws/util/AWSGeneralUtilTest.java
@@ -901,6 +901,21 @@ class AWSGeneralUtilTest {
"Secret key must be specified either via environment
variable (AWS_SECRET_ACCESS_KEY) or system property (aws.secretAccessKey)");
}
+ @Test
+ void testNewInstanceOfDefaultCredentialsProviderCreatedForEachClient() {
+ Properties properties = new Properties();
+ properties.setProperty(AWS_CREDENTIALS_PROVIDER, "AUTO");
+
+ AwsCredentialsProvider credentialsProvider =
+ AWSGeneralUtil.getCredentialsProvider(properties);
+ AwsCredentialsProvider credentialsProvider2 =
+ AWSGeneralUtil.getCredentialsProvider(properties);
+
+ assertThat(credentialsProvider)
+ .withFailMessage("Must create new instance for each call")
+ .isNotSameAs(credentialsProvider2);
+ }
+
private WebIdentityTokenFileCredentialsProvider.Builder
mockWebIdentityTokenFileCredentialsProviderBuilder() {
WebIdentityTokenFileCredentialsProvider.Builder builder =