From 55b9d345573f456891737af781301386a733244f Mon Sep 17 00:00:00 2001 From: Jaykumar Gosar <5666661+gosar@users.noreply.github.com> Date: Wed, 4 Oct 2023 16:02:41 -0700 Subject: [PATCH] Uncomment previously disabled AsyncHttpChecksumIntegrationTest (#4545) * Uncomment previously disabled AsyncHttpChecksumIntegrationTest * Update comment to explain more about those tests --- .../pipeline/stages/HttpChecksumStage.java | 6 ++---- .../AsyncHttpChecksumIntegrationTest.java | 20 +++++++++++-------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/HttpChecksumStage.java b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/HttpChecksumStage.java index 90b2e72bd407..ed57ed8ab18f 100644 --- a/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/HttpChecksumStage.java +++ b/core/sdk-core/src/main/java/software/amazon/awssdk/core/internal/http/pipeline/stages/HttpChecksumStage.java @@ -75,8 +75,7 @@ public SdkHttpFullRequest.Builder execute(SdkHttpFullRequest.Builder request, Re return request; } - // If SRA is enabled, we skip flexible checksum in header - // TODO(post-sra-identity-auth): we should remove this after SRA is fully released + // If SRA is enabled, skip flexible checksum in header, since it is handled by SRA signer if (sraSigningEnabled(context)) { return request; } @@ -136,8 +135,7 @@ private void addMd5ChecksumInHeader(SdkHttpFullRequest.Builder request) { private boolean flexibleChecksumInTrailerRequired(RequestExecutionContext context, ChecksumSpecs checksumSpecs) { - // If SRA is enabled and it's sync client, - // skip it since flexible checksum trailer is handled in SRA signer + // If SRA is enabled and it's sync client, skip flexible checksum trailer, since it is handled in SRA signer if (sraSigningEnabled(context) && clientType == ClientType.SYNC) { return false; } diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/checksum/AsyncHttpChecksumIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/checksum/AsyncHttpChecksumIntegrationTest.java index 404e50abca27..1f296345290c 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/checksum/AsyncHttpChecksumIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/checksum/AsyncHttpChecksumIntegrationTest.java @@ -49,7 +49,6 @@ import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectResponse; import software.amazon.awssdk.services.s3.utils.CaptureChecksumValidationInterceptor; -import software.amazon.awssdk.services.s3.utils.ChecksumUtils; import software.amazon.awssdk.testutils.RandomTempFile; public class AsyncHttpChecksumIntegrationTest extends S3IntegrationTestBase { @@ -235,13 +234,15 @@ void asyncValidSignedTrailerChecksumCalculatedBySdkClient() { } /** - * If http is used, payload signing will be enforced, but it's not currently supported in async path - * TODO: re-enable it once it's supported + * S3 clients by default don't do payload signing. But when http is used, payload signing is expected to be enforced. But + * payload signing is not currently supported in async path (for both pre/post SRA signers). + * However, this test passes, because of https://github + * .com/aws/aws-sdk-java-v2/blob/38e221bd815af31a6c6b91557499af155103c21a/core/auth/src/main/java/software/amazon/awssdk/auth/signer/internal/AbstractAwsS3V4Signer.java#L279-L285. + * Keeping this test enabled, to ensure moving to SRA Identity & Auth, does not break current behavior. + * TODO: Update this test with right asserts when payload signing is supported in async. */ - @Disabled("Payload signing is not supported for S3 async client") @Test public void putObject_with_bufferCreatedFromEmptyString() { - s3HttpAsync.putObject(PutObjectRequest.builder() .bucket(BUCKET) .key(KEY) @@ -262,10 +263,13 @@ public void putObject_with_bufferCreatedFromEmptyString() { } /** - * If http is used, payload signing will be enforced, but it's not currently supported in async path - * TODO: re-enable it once it's supported + * S3 clients by default don't do payload signing. But when http is used, payload signing is expected to be enforced. But + * payload signing is not currently supported in async path (for both pre/post SRA signers). + * However, this test passes, because of https://github + * .com/aws/aws-sdk-java-v2/blob/38e221bd815af31a6c6b91557499af155103c21a/core/auth/src/main/java/software/amazon/awssdk/auth/signer/internal/AbstractAwsS3V4Signer.java#L279-L285. + * Keeping this test enabled, to ensure moving to SRA Identity & Auth, does not break current behavior. + * TODO: Update this test with right asserts when payload signing is supported in async. */ - @Disabled("Payload signing is not supported for S3 async client") @Test public void putObject_with_bufferCreatedFromZeroCapacityByteBuffer() { ByteBuffer content = ByteBuffer.allocate(0);