Repository: jclouds Updated Branches: refs/heads/master 6964ef6c8 -> fdec2fa99
JCLOUDS-766: Do not resign already-signed requests Previously jclouds would add both a V2 and V4 signature to some requests which Amazon rejects. Addresses AWSS3BlobSignerLiveTest test failures with time-limited requests. Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/fdec2fa9 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/fdec2fa9 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/fdec2fa9 Branch: refs/heads/master Commit: fdec2fa99f5d6b1e91f9216596f6fe58643b8209 Parents: 6964ef6 Author: Andrew Gaul <[email protected]> Authored: Sun Mar 27 16:19:55 2016 -0700 Committer: Andrew Gaul <[email protected]> Committed: Sun Mar 27 16:24:12 2016 -0700 ---------------------------------------------------------------------- .../jclouds/aws/s3/filters/AWSRequestAuthorizeSignatureV4.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/fdec2fa9/providers/aws-s3/src/main/java/org/jclouds/aws/s3/filters/AWSRequestAuthorizeSignatureV4.java ---------------------------------------------------------------------- diff --git a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/filters/AWSRequestAuthorizeSignatureV4.java b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/filters/AWSRequestAuthorizeSignatureV4.java index 6cb3bf1..f65040a 100644 --- a/providers/aws-s3/src/main/java/org/jclouds/aws/s3/filters/AWSRequestAuthorizeSignatureV4.java +++ b/providers/aws-s3/src/main/java/org/jclouds/aws/s3/filters/AWSRequestAuthorizeSignatureV4.java @@ -17,11 +17,14 @@ package org.jclouds.aws.s3.filters; import static org.jclouds.http.utils.Queries.queryParser; +import static org.jclouds.aws.s3.blobstore.AWSS3BlobRequestSigner.TEMPORARY_SIGNATURE_PARAM; import static org.jclouds.s3.filters.AwsSignatureV4Constants.AMZ_SIGNATURE_PARAM; import javax.inject.Inject; import javax.inject.Singleton; +import com.google.common.collect.Multimap; + import org.jclouds.http.HttpRequest; import org.jclouds.s3.filters.Aws4SignerForAuthorizationHeader; import org.jclouds.s3.filters.Aws4SignerForChunkedUpload; @@ -50,7 +53,8 @@ public class AWSRequestAuthorizeSignatureV4 extends RequestAuthorizeSignatureV4 * with expiration. */ - if (queryParser().apply(request.getEndpoint().getQuery()).containsKey(AMZ_SIGNATURE_PARAM)) { + Multimap<String, String> queryMap = queryParser().apply(request.getEndpoint().getQuery()); + if (queryMap.containsKey(AMZ_SIGNATURE_PARAM) || queryMap.containsKey(TEMPORARY_SIGNATURE_PARAM)) { return request; } return super.signForAuthorizationHeader(request);
