JCLOUDS-1358: Handle 0-byte input with v4 signature Previously this failed due to use of mark and reset on the InputStream.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/b7b67a0f Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/b7b67a0f Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/b7b67a0f Branch: refs/heads/2.0.x Commit: b7b67a0f6ab5d4dd0266abc3a3d59961c29e0267 Parents: 9a30245 Author: Andrew Gaul <[email protected]> Authored: Tue Nov 21 11:36:11 2017 -0800 Committer: Andrew Gaul <[email protected]> Committed: Fri Nov 24 20:15:25 2017 -0800 ---------------------------------------------------------------------- .../org/jclouds/s3/filters/Aws4SignerForAuthorizationHeader.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/b7b67a0f/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 258c3a7..2a1a290 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 @@ -169,8 +169,7 @@ public class Aws4SignerForAuthorizationHeader extends Aws4SignerBase { protected String getPayloadHash(HttpRequest request) { Payload payload = request.getPayload(); - if (payload == null) { - // when payload is null. + if (payload == null || "0".equals(getContentLength(request))) { return getEmptyPayloadContentHash(); } return calculatePayloadContentHash(payload);
