From d0a2382e0f766a3e8153ca8fef2b1323002a8393 Mon Sep 17 00:00:00 2001 From: carhaz <36483641+carhaz@users.noreply.github.com> Date: Wed, 15 Oct 2025 15:13:48 -0700 Subject: [PATCH] bugfix: set expiration time for container credential provider --- .changes/next-release/bugfix-AWSSDKforJavav2-6cad045.json | 6 ++++++ .../auth/credentials/internal/HttpCredentialsLoader.java | 1 + .../auth/credentials/ContainerCredentialsProviderTest.java | 5 +++++ 3 files changed, 12 insertions(+) create mode 100644 .changes/next-release/bugfix-AWSSDKforJavav2-6cad045.json diff --git a/.changes/next-release/bugfix-AWSSDKforJavav2-6cad045.json b/.changes/next-release/bugfix-AWSSDKforJavav2-6cad045.json new file mode 100644 index 000000000000..a9b18b0b4272 --- /dev/null +++ b/.changes/next-release/bugfix-AWSSDKforJavav2-6cad045.json @@ -0,0 +1,6 @@ +{ + "type": "bugfix", + "category": "AWS SDK for Java v2", + "contributor": "carhaz", + "description": "Update session credentials builder in HttpsCredentialsLoader to include expiration time so it's set in session credentials for ContainerCredentialsProvider" +} diff --git a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/HttpCredentialsLoader.java b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/HttpCredentialsLoader.java index 507ae7c6f44f..d26364690436 100644 --- a/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/HttpCredentialsLoader.java +++ b/core/auth/src/main/java/software/amazon/awssdk/auth/credentials/internal/HttpCredentialsLoader.java @@ -104,6 +104,7 @@ public AwsCredentials getAwsCredentials() { .accessKeyId(accessKeyId) .secretAccessKey(secretKey) .sessionToken(token) + .expirationTime(expiration) .providerName(providerName) .build() : AwsBasicCredentials.builder() diff --git a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ContainerCredentialsProviderTest.java b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ContainerCredentialsProviderTest.java index 568c82724f3b..29955af439ca 100644 --- a/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ContainerCredentialsProviderTest.java +++ b/core/auth/src/test/java/software/amazon/awssdk/auth/credentials/ContainerCredentialsProviderTest.java @@ -35,6 +35,8 @@ import software.amazon.awssdk.core.util.SdkUserAgent; import software.amazon.awssdk.testutils.EnvironmentVariableHelper; +import java.util.Optional; + /** * Tests for the {@link ContainerCredentialsProviderTest}. */ @@ -47,6 +49,7 @@ public class ContainerCredentialsProviderTest { private static final String ACCESS_KEY_ID = "ACCESS_KEY_ID"; private static final String SECRET_ACCESS_KEY = "SECRET_ACCESS_KEY"; private static final String TOKEN = "TOKEN_TOKEN_TOKEN"; + private static final String EXPIRATION_TIME = "3000-05-03T04:55:54Z"; private ContainerCredentialsProvider credentialsProvider; private static EnvironmentVariableHelper helper = new EnvironmentVariableHelper(); @@ -92,6 +95,8 @@ public void testGetCredentialsReturnsValidResponseFromEcsEndpoint() { assertThat(credentials.accessKeyId()).isEqualTo(ACCESS_KEY_ID); assertThat(credentials.secretAccessKey()).isEqualTo(SECRET_ACCESS_KEY); assertThat(credentials.sessionToken()).isEqualTo(TOKEN); + assertThat(credentials.expirationTime().isPresent()); + assertThat(credentials.expirationTime().get()).isEqualTo(EXPIRATION_TIME); assertThat(credentials.providerName()).isPresent().contains(BusinessMetricFeatureId.CREDENTIALS_HTTP.value()); }