@@ -54,6 +54,26 @@ public final class DefaultAwsV4HttpSigner implements AwsV4HttpSigner {
5454
5555 private static final int DEFAULT_CHUNK_SIZE_IN_BYTES = 128 * 1024 ;
5656
57+ @ Override
58+ public SignedRequest sign (SignRequest <? extends AwsCredentialsIdentity > request ) {
59+ Checksummer checksummer = checksummer (request );
60+ V4Properties v4Properties = v4Properties (request );
61+ V4RequestSigner v4RequestSigner = v4RequestSigner (request , v4Properties );
62+ V4PayloadSigner payloadSigner = v4PayloadSigner (request , v4Properties );
63+
64+ return doSign (request , checksummer , v4RequestSigner , payloadSigner );
65+ }
66+
67+ @ Override
68+ public CompletableFuture <AsyncSignedRequest > signAsync (AsyncSignRequest <? extends AwsCredentialsIdentity > request ) {
69+ Checksummer checksummer = checksummer (request );
70+ V4Properties v4Properties = v4Properties (request );
71+ V4RequestSigner v4RequestSigner = v4RequestSigner (request , v4Properties );
72+ V4PayloadSigner payloadSigner = v4PayloadAsyncSigner (request , v4Properties );
73+
74+ return doSign (request , checksummer , v4RequestSigner , payloadSigner );
75+ }
76+
5777 private static V4Properties v4Properties (BaseSignRequest <?, ? extends AwsCredentialsIdentity > request ) {
5878 Clock signingClock = request .requireProperty (SIGNING_CLOCK , Clock .systemUTC ());
5979 Instant signingInstant = signingClock .instant ();
@@ -106,17 +126,6 @@ private static V4RequestSigner v4RequestSigner(
106126 return requestSigner .apply (v4Properties );
107127 }
108128
109- private static boolean hasChecksumHeader (BaseSignRequest <?, ? extends AwsCredentialsIdentity > request ) {
110- ChecksumAlgorithm checksumAlgorithm = request .property (CHECKSUM_ALGORITHM );
111-
112- if (checksumAlgorithm != null ) {
113- String checksumHeaderName = checksumHeaderName (checksumAlgorithm );
114- return request .request ().firstMatchingHeader (checksumHeaderName ).isPresent ();
115- }
116-
117- return false ;
118- }
119-
120129 private static Checksummer checksummer (BaseSignRequest <?, ? extends AwsCredentialsIdentity > request ) {
121130 boolean isPayloadSigning = isPayloadSigning (request );
122131 boolean isEventStreaming = isEventStreaming (request .request ());
@@ -161,14 +170,8 @@ private static Checksummer checksummer(BaseSignRequest<?, ? extends AwsCredentia
161170 return Checksummer .forPrecomputed256Checksum (UNSIGNED_PAYLOAD );
162171 }
163172
164- private static boolean useChunkEncoding (boolean payloadSigningEnabled , boolean chunkEncodingEnabled ,
165- boolean isTrailingOrFlexible ) {
166-
167- return (payloadSigningEnabled && chunkEncodingEnabled ) || (chunkEncodingEnabled && isTrailingOrFlexible );
168- }
169-
170173 private static V4PayloadSigner v4PayloadSigner (
171- BaseSignRequest <?, ? extends AwsCredentialsIdentity > request ,
174+ SignRequest < ? extends AwsCredentialsIdentity > request ,
172175 V4Properties properties ) {
173176
174177 boolean isPayloadSigning = isPayloadSigning (request );
@@ -200,7 +203,7 @@ private static V4PayloadSigner v4PayloadSigner(
200203 }
201204
202205 private static V4PayloadSigner v4PayloadAsyncSigner (
203- BaseSignRequest <?, ? extends AwsCredentialsIdentity > request ,
206+ AsyncSignRequest < ? extends AwsCredentialsIdentity > request ,
204207 V4Properties properties ) {
205208
206209 boolean isPayloadSigning = request .requireProperty (PAYLOAD_SIGNING_ENABLED , true );
@@ -289,23 +292,20 @@ private static boolean isEventStreaming(SdkHttpRequest request) {
289292 return "application/vnd.amazon.eventstream" .equals (request .firstMatchingHeader (Header .CONTENT_TYPE ).orElse ("" ));
290293 }
291294
292- @ Override
293- public SignedRequest sign (SignRequest <? extends AwsCredentialsIdentity > request ) {
294- Checksummer checksummer = checksummer (request );
295- V4Properties v4Properties = v4Properties (request );
296- V4RequestSigner v4RequestSigner = v4RequestSigner (request , v4Properties );
297- V4PayloadSigner payloadSigner = v4PayloadSigner (request , v4Properties );
295+ private static boolean hasChecksumHeader (BaseSignRequest <?, ? extends AwsCredentialsIdentity > request ) {
296+ ChecksumAlgorithm checksumAlgorithm = request .property (CHECKSUM_ALGORITHM );
298297
299- return doSign (request , checksummer , v4RequestSigner , payloadSigner );
298+ if (checksumAlgorithm != null ) {
299+ String checksumHeaderName = checksumHeaderName (checksumAlgorithm );
300+ return request .request ().firstMatchingHeader (checksumHeaderName ).isPresent ();
301+ }
302+
303+ return false ;
300304 }
301305
302- @ Override
303- public CompletableFuture <AsyncSignedRequest > signAsync (AsyncSignRequest <? extends AwsCredentialsIdentity > request ) {
304- Checksummer checksummer = checksummer (request );
305- V4Properties v4Properties = v4Properties (request );
306- V4RequestSigner v4RequestSigner = v4RequestSigner (request , v4Properties );
307- V4PayloadSigner payloadSigner = v4PayloadAsyncSigner (request , v4Properties );
306+ private static boolean useChunkEncoding (boolean payloadSigningEnabled , boolean chunkEncodingEnabled ,
307+ boolean isTrailingOrFlexible ) {
308308
309- return doSign ( request , checksummer , v4RequestSigner , payloadSigner );
309+ return ( payloadSigningEnabled && chunkEncodingEnabled ) || ( chunkEncodingEnabled && isTrailingOrFlexible );
310310 }
311311}
0 commit comments