Skip to content

Commit 8c81f83

Browse files
authored
Duplicate code reduction part 1: consolidate duplicate signing related classes (#6480)
* Consolidate duplicate signing related classes * Fix build
1 parent 5e03e42 commit 8c81f83

File tree

43 files changed

+91
-286
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+91
-286
lines changed

core/auth-crt/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@
6262
<artifactId>auth</artifactId>
6363
<version>${awsjavasdk.version}</version>
6464
</dependency>
65+
<dependency>
66+
<groupId>software.amazon.awssdk</groupId>
67+
<artifactId>http-auth-aws</artifactId>
68+
<version>${awsjavasdk.version}</version>
69+
</dependency>
6570
<dependency>
6671
<groupId>software.amazon.awssdk.crt</groupId>
6772
<artifactId>aws-crt</artifactId>

core/auth-crt/src/main/java/software/amazon/awssdk/authcrt/signer/internal/SigningConfigProvider.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
import java.util.Optional;
2424
import software.amazon.awssdk.annotations.SdkInternalApi;
2525
import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute;
26-
import software.amazon.awssdk.auth.signer.internal.SignerConstant;
2726
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
2827
import software.amazon.awssdk.crt.auth.signing.AwsSigningConfig;
28+
import software.amazon.awssdk.http.auth.aws.signer.SignerConstant;
2929
import software.amazon.awssdk.regions.RegionScope;
3030

3131
@SdkInternalApi
@@ -80,7 +80,7 @@ private AwsSigningConfig createPresigningConfig(ExecutionAttributes executionAtt
8080

8181
long expirationInSeconds = expirationTime
8282
.map(end -> Math.max(0, Duration.between(getSigningClock(executionAttributes).instant(), end).getSeconds()))
83-
.orElse(SignerConstant.PRESIGN_URL_MAX_EXPIRATION_SECONDS);
83+
.orElse(SignerConstant.PRESIGN_URL_MAX_EXPIRATION_DURATION.getSeconds());
8484

8585
AwsSigningConfig signingConfig = createDefaultRequestConfig(executionAttributes);
8686
signingConfig.setExpirationInSeconds(expirationInSeconds);

core/auth-crt/src/test/java/software/amazon/awssdk/authcrt/signer/internal/SigningConfigProviderTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@
2525
import org.junit.jupiter.api.Test;
2626
import software.amazon.awssdk.auth.signer.AwsSignerExecutionAttribute;
2727
import software.amazon.awssdk.auth.signer.S3SignerExecutionAttribute;
28-
import software.amazon.awssdk.auth.signer.internal.SignerConstant;
2928
import software.amazon.awssdk.authcrt.signer.SignerTestUtils;
3029
import software.amazon.awssdk.authcrt.signer.SigningTestCase;
3130
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
3231
import software.amazon.awssdk.crt.auth.signing.AwsSigningConfig;
32+
import software.amazon.awssdk.http.auth.aws.signer.SignerConstant;
3333

3434
public class SigningConfigProviderTest {
3535

@@ -68,7 +68,7 @@ public void testBasicQuerySigningConfiguration() {
6868
assertTrue(signingConfig.getService().equals(testCase.signingName));
6969
assertTrue(signingConfig.getShouldNormalizeUriPath());
7070
assertTrue(signingConfig.getUseDoubleUriEncode());
71-
assertTrue(signingConfig.getExpirationInSeconds() == SignerConstant.PRESIGN_URL_MAX_EXPIRATION_SECONDS);
71+
assertTrue(signingConfig.getExpirationInSeconds() == SignerConstant.PRESIGN_URL_MAX_EXPIRATION_DURATION.getSeconds());
7272
}
7373

7474
@Test

core/auth/src/main/java/software/amazon/awssdk/auth/signer/Aws4UnsignedPayloadSigner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
package software.amazon.awssdk.auth.signer;
1717

18-
import static software.amazon.awssdk.auth.signer.internal.SignerConstant.X_AMZ_CONTENT_SHA256;
18+
import static software.amazon.awssdk.http.auth.aws.signer.SignerConstant.X_AMZ_CONTENT_SHA256;
1919

2020
import software.amazon.awssdk.annotations.SdkPublicApi;
2121
import software.amazon.awssdk.auth.signer.internal.BaseAws4Signer;

core/auth/src/main/java/software/amazon/awssdk/auth/signer/internal/AbstractAws4Signer.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,12 @@
4646
import software.amazon.awssdk.core.signer.Presigner;
4747
import software.amazon.awssdk.http.SdkHttpFullRequest;
4848
import software.amazon.awssdk.http.SdkHttpRequest;
49+
import software.amazon.awssdk.http.auth.aws.signer.SignerConstant;
4950
import software.amazon.awssdk.utils.BinaryUtils;
5051
import software.amazon.awssdk.utils.Logger;
5152
import software.amazon.awssdk.utils.Pair;
5253
import software.amazon.awssdk.utils.StringUtils;
54+
import software.amazon.awssdk.utils.cache.FifoCache;
5355
import software.amazon.awssdk.utils.http.SdkHttpUtils;
5456

5557
/**
@@ -332,7 +334,7 @@ private void addPreSignInformationToRequest(SdkHttpFullRequest.Builder mutableRe
332334

333335
mutableRequest.putRawQueryParameter(SignerConstant.X_AMZ_ALGORITHM, SignerConstant.AWS4_SIGNING_ALGORITHM);
334336
mutableRequest.putRawQueryParameter(SignerConstant.X_AMZ_DATE, signerParams.getFormattedRequestSigningDateTime());
335-
mutableRequest.putRawQueryParameter(SignerConstant.X_AMZ_SIGNED_HEADER, canonicalRequest.signedHeaderString());
337+
mutableRequest.putRawQueryParameter(SignerConstant.X_AMZ_SIGNED_HEADERS, canonicalRequest.signedHeaderString());
336338
mutableRequest.putRawQueryParameter(SignerConstant.X_AMZ_EXPIRES, Long.toString(expirationInSeconds));
337339
mutableRequest.putRawQueryParameter(SignerConstant.X_AMZ_CREDENTIAL, signingCredentials);
338340
}
@@ -375,9 +377,9 @@ private long getSignatureDurationInSeconds(Aws4SignerRequestParams requestParams
375377
long expirationInSeconds = signingParams.expirationTime()
376378
.map(t -> t.getEpochSecond() -
377379
(requestParams.getRequestSigningDateTimeMilli() / 1000))
378-
.orElse(SignerConstant.PRESIGN_URL_MAX_EXPIRATION_SECONDS);
380+
.orElse(SignerConstant.PRESIGN_URL_MAX_EXPIRATION_DURATION.getSeconds());
379381

380-
if (expirationInSeconds > SignerConstant.PRESIGN_URL_MAX_EXPIRATION_SECONDS) {
382+
if (expirationInSeconds > SignerConstant.PRESIGN_URL_MAX_EXPIRATION_DURATION.getSeconds()) {
381383
throw SdkClientException.builder()
382384
.message("Requests that are pre-signed by SigV4 algorithm are valid for at most 7" +
383385
" days. The expiration date set on the current request [" +

core/auth/src/main/java/software/amazon/awssdk/auth/signer/internal/AbstractAwsS3V4Signer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
package software.amazon.awssdk.auth.signer.internal;
1717

1818
import static software.amazon.awssdk.auth.signer.internal.Aws4SignerUtils.calculateRequestContentLength;
19-
import static software.amazon.awssdk.auth.signer.internal.SignerConstant.X_AMZ_CONTENT_SHA256;
19+
import static software.amazon.awssdk.http.auth.aws.signer.SignerConstant.X_AMZ_CONTENT_SHA256;
2020

2121
import java.io.InputStream;
2222
import java.util.Optional;

core/auth/src/main/java/software/amazon/awssdk/auth/signer/internal/Aws4SignerRequestParams.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.time.Duration;
2020
import software.amazon.awssdk.annotations.SdkInternalApi;
2121
import software.amazon.awssdk.auth.signer.params.Aws4SignerParams;
22+
import software.amazon.awssdk.http.auth.aws.signer.SignerConstant;
2223
import software.amazon.awssdk.regions.Region;
2324

2425
/**

core/auth/src/main/java/software/amazon/awssdk/auth/signer/internal/BaseAsyncAws4Signer.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
2727
import software.amazon.awssdk.core.signer.AsyncRequestBodySigner;
2828
import software.amazon.awssdk.http.SdkHttpFullRequest;
29+
import software.amazon.awssdk.http.auth.aws.signer.SignerConstant;
2930

3031

3132
@SdkInternalApi

core/auth/src/main/java/software/amazon/awssdk/auth/signer/internal/BaseEventStreamAsyncAws4Signer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
package software.amazon.awssdk.auth.signer.internal;
1717

18-
import static software.amazon.awssdk.auth.signer.internal.SignerConstant.X_AMZ_CONTENT_SHA256;
18+
import static software.amazon.awssdk.http.auth.aws.signer.SignerConstant.X_AMZ_CONTENT_SHA256;
1919

2020
import java.nio.ByteBuffer;
2121
import java.nio.charset.StandardCharsets;
@@ -37,6 +37,7 @@
3737
import software.amazon.awssdk.core.checksums.SdkChecksum;
3838
import software.amazon.awssdk.core.interceptor.ExecutionAttributes;
3939
import software.amazon.awssdk.http.SdkHttpFullRequest;
40+
import software.amazon.awssdk.http.auth.aws.signer.SignerConstant;
4041
import software.amazon.awssdk.utils.BinaryUtils;
4142
import software.amazon.awssdk.utils.Logger;
4243
import software.amazon.eventstream.HeaderValue;

core/auth/src/main/java/software/amazon/awssdk/auth/signer/internal/BoundedLinkedHashMap.java

Lines changed: 0 additions & 52 deletions
This file was deleted.

0 commit comments

Comments
 (0)