Repository: jclouds
Updated Branches:
  refs/heads/master 2501122a2 -> feae011c4


JCLOUDS-766: URL encode path for v4 signatures

Addresses AWSS3BlobIntegrationLiveTest.deleteObject test failures.


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/feae011c
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/feae011c
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/feae011c

Branch: refs/heads/master
Commit: feae011c4d724815c12bdad912c8f94d231f204c
Parents: 2501122
Author: Andrew Gaul <[email protected]>
Authored: Fri Mar 18 13:49:55 2016 -0700
Committer: Andrew Gaul <[email protected]>
Committed: Fri Mar 18 15:05:05 2016 -0700

----------------------------------------------------------------------
 apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerBase.java | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/feae011c/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerBase.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerBase.java 
b/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerBase.java
index 109df5e..3ef5bf4 100644
--- a/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerBase.java
+++ b/apis/s3/src/main/java/org/jclouds/s3/filters/Aws4SignerBase.java
@@ -76,6 +76,8 @@ public abstract class Aws4SignerBase {
    // A-Z, a-z, 0-9, hyphen (-), underscore (_), period (.), and tilde (~).
    private static final Escaper AWS_URL_PARAMETER_ESCAPER;
 
+   private static final Escaper AWS_PATH_ESCAPER = new PercentEscaper("/-_.~", 
false);
+
    static {
       timestampFormat = new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'");
       timestampFormat.setTimeZone(GMT);
@@ -384,7 +386,7 @@ public abstract class Aws4SignerBase {
       canonicalRequest.append(method).append("\n");
 
       // CanonicalURI + '\n' +
-      canonicalRequest.append(endpoint.getPath()).append("\n");
+      
canonicalRequest.append(AWS_PATH_ESCAPER.escape(endpoint.getPath())).append("\n");
 
       // CanonicalQueryString + '\n' +
       if (endpoint.getQuery() != null) {

Reply via email to