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);

Reply via email to