Repository: jclouds Updated Branches: refs/heads/master 35c5d7ffc -> 8053abb53
JCLOUDS-766: Check metadata and headers for MD5 Addresses AWSS3ClientLiveTest.testMultipartSynchronously test failures. Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/8053abb5 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/8053abb5 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/8053abb5 Branch: refs/heads/master Commit: 8053abb5302641a6500cb3f46e7c9e58de3b0ebe Parents: 35c5d7f Author: Andrew Gaul <[email protected]> Authored: Fri Mar 18 22:55:34 2016 -0700 Committer: Andrew Gaul <[email protected]> Committed: Fri Mar 18 22:56:54 2016 -0700 ---------------------------------------------------------------------- .../s3/filters/Aws4SignerForAuthorizationHeader.java | 9 ++++++--- .../org/jclouds/s3/filters/Aws4SignerForChunkedUpload.java | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/8053abb5/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java ---------------------------------------------------------------------- diff --git a/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java b/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java index 96526b9..e7ef172 100644 --- a/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java +++ b/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java @@ -106,14 +106,17 @@ public class Aws4SignerForAuthorizationHeader extends Aws4SignerBase { } // Content MD5 + String contentMD5 = request.getFirstHeaderOrNull(CONTENT_MD5); if (payload != null) { HashCode md5 = payload.getContentMetadata().getContentMD5AsHashCode(); if (md5 != null) { - String contentMD5 = BaseEncoding.base64().encode(md5.asBytes()); - requestBuilder.replaceHeader(CONTENT_MD5, contentMD5); - signedHeadersBuilder.put(CONTENT_MD5.toLowerCase(), contentMD5); + contentMD5 = BaseEncoding.base64().encode(md5.asBytes()); } } + if (contentMD5 != null) { + requestBuilder.replaceHeader(CONTENT_MD5, contentMD5); + signedHeadersBuilder.put(CONTENT_MD5.toLowerCase(), contentMD5); + } // host requestBuilder.replaceHeader(HttpHeaders.HOST, host); http://git-wip-us.apache.org/repos/asf/jclouds/blob/8053abb5/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForChunkedUpload.java ---------------------------------------------------------------------- diff --git a/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForChunkedUpload.java b/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForChunkedUpload.java index 4b6798d..97370e6 100644 --- a/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForChunkedUpload.java +++ b/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerForChunkedUpload.java @@ -127,14 +127,17 @@ public class Aws4SignerForChunkedUpload extends Aws4SignerBase { signedHeadersBuilder.put(CONTENT_LENGTH.toLowerCase(), Long.toString(totalLength)); // Content MD5 + String contentMD5 = request.getFirstHeaderOrNull(CONTENT_MD5); if (payload != null) { HashCode md5 = payload.getContentMetadata().getContentMD5AsHashCode(); if (md5 != null) { - String contentMD5 = BaseEncoding.base64().encode(md5.asBytes()); - requestBuilder.replaceHeader(CONTENT_MD5, contentMD5); - signedHeadersBuilder.put(CONTENT_MD5.toLowerCase(), contentMD5); + contentMD5 = BaseEncoding.base64().encode(md5.asBytes()); } } + if (contentMD5 != null) { + requestBuilder.replaceHeader(CONTENT_MD5, contentMD5); + signedHeadersBuilder.put(CONTENT_MD5.toLowerCase(), contentMD5); + } // Content Type // content-type is not a required signing param. However, examples use this, so we include it to ease testing.
