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 =

Reply via email to