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