You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2018/07/11 16:37:53 UTC
[4/4] jclouds git commit: Pinning down JCLOUDS-1401 fix behavior with
a unit test which is able to distinguish URI.query from URI.rawQuery.
Pinning down JCLOUDS-1401 fix behavior with a unit test which is able to distinguish URI.query from URI.rawQuery.
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/ddcb04c8
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/ddcb04c8
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/ddcb04c8
Branch: refs/heads/2.1.x
Commit: ddcb04c85a77ecb4d48e36b516a49c09d254b147
Parents: a29f606
Author: Jesse Glick <jg...@cloudbees.com>
Authored: Wed Jul 11 10:41:50 2018 -0400
Committer: Ignasi Barrera <na...@apache.org>
Committed: Wed Jul 11 09:37:37 2018 -0700
----------------------------------------------------------------------
.../RequestAuthorizeSignatureV4Test.java | 25 ++++++++++++++++++++
1 file changed, 25 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/ddcb04c8/apis/s3/src/test/java/org/jclouds/s3/filters/RequestAuthorizeSignatureV4Test.java
----------------------------------------------------------------------
diff --git a/apis/s3/src/test/java/org/jclouds/s3/filters/RequestAuthorizeSignatureV4Test.java b/apis/s3/src/test/java/org/jclouds/s3/filters/RequestAuthorizeSignatureV4Test.java
index 9494a86..b59a26b 100644
--- a/apis/s3/src/test/java/org/jclouds/s3/filters/RequestAuthorizeSignatureV4Test.java
+++ b/apis/s3/src/test/java/org/jclouds/s3/filters/RequestAuthorizeSignatureV4Test.java
@@ -41,6 +41,7 @@ import org.jclouds.s3.S3ApiMetadata;
import org.jclouds.s3.S3Client;
import org.jclouds.s3.config.S3HttpApiModule;
import org.jclouds.s3.domain.S3Object;
+import org.jclouds.s3.options.ListBucketOptions;
import org.jclouds.s3.options.PutObjectOptions;
import org.testng.annotations.Test;
@@ -83,6 +84,11 @@ public class RequestAuthorizeSignatureV4Test {
+ "SignedHeaders=content-length;content-type;host;x-amz-content-sha256;x-amz-date;x-amz-storage-class, "
+ "Signature=090f1bb1db984221ae1a20c5d12a82820a0d74b4be85f20daa1431604f41df08";
+ private static final String LIST_BUCKET_RESULT = "AWS4-HMAC-SHA256 "
+ + "Credential=AKIAPAEBI3QI4EXAMPLE/20150203/cn-north-1/s3/aws4_request, "
+ + "SignedHeaders=host;x-amz-content-sha256;x-amz-date, "
+ + "Signature=6cc5d0758e2599be7cb172fd57cefab2828201a2b4d372972a83dc304de93958";
+
private static final String BUCKET_NAME = "test-bucket";
private static final String OBJECT_NAME = "ExampleObject.txt";
@@ -190,4 +196,23 @@ public class RequestAuthorizeSignatureV4Test {
assertEquals(filtered.getFirstHeaderOrNull("Authorization"), PUT_OBJECT_RESULT);
}
+
+ // JCLOUDS-1401
+ @Test
+ void testListBucketFunnyCharactersSignature() {
+ Invocation invocation = Invocation.create(method(S3Client.class, "listBucket", String.class,
+ ListBucketOptions[].class),
+ // Simulating ListBucketOptions.Builder.withPrefix("foo%2Fbar") with manual endpoint:
+ ImmutableList.<Object>of(BUCKET_NAME, new ListBucketOptions[0]));
+
+ HttpRequest getObject = GeneratedHttpRequest.builder().method("GET")
+ .invocation(invocation)
+ .endpoint("https://" + BUCKET_NAME + ".s3.cn-north-1.amazonaws.com.cn/?delimiter=/&prefix=foo%252Fbar")
+ .addHeader(HttpHeaders.HOST, BUCKET_NAME + ".s3.cn-north-1.amazonaws.com.cn")
+ .build();
+
+ HttpRequest filtered = filter(temporaryCredentials).filter(getObject);
+ assertEquals(filtered.getFirstHeaderOrNull("Authorization"), LIST_BUCKET_RESULT);
+ }
+
}