[jira] [Commented] (JCLOUDS-1401) S3 SignatureDoesNotMatch when listing keys using prefix with ampersand

2018-07-11 Thread ASF subversion and git services (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16540352#comment-16540352
 ] 

ASF subversion and git services commented on JCLOUDS-1401:
--

Commit 5987a920206249eaa20f806a866140bd9fc31546 in jclouds's branch 
refs/heads/2.1.x from [~jesse.gl...@netbeans.com]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=5987a92 ]

[JCLOUDS-1401] Properly URL-encode the CanonicalQueryString when it contains 
funny characters.


> S3 SignatureDoesNotMatch when listing keys using prefix with ampersand
> --
>
> Key: JCLOUDS-1401
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1401
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.0.0
>Reporter: Carlos Sanchez
>Priority: Trivial
>  Labels: aws-s3, s3
>
> When using a prefix with ampersand {{&}} the list request fails with this 
> exception. 
> The AWS SDK handles it fine
> {code}
> public void testAmpersand() throws Exception {
> String key = getPrefix() + "xxx#?:&$'\"<>čॐ";
> try {
> blobStore.putBlob(getContainer(), 
> blobStore.blobBuilder(key).payload("test").build());
> final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
> // works fine
> ListObjectsV2Result result = s3.listObjectsV2(getContainer(), 
> key);
> List objects = result.getObjectSummaries();
> assertThat(objects, not(empty()));
> // fails with
> // org.jclouds.rest.AuthorizationException: The request signature 
> we calculated does not match the signature
> // you provided. Check your key and signing method.
> PageSet list = 
> blobStore.list(getContainer(), prefix(key));
> assertThat(list, not(empty()));
> } finally {
> blobStore.removeBlob(getContainer(), key);
> }
> }
> {code}
> {code}
> org.jclouds.rest.AuthorizationException: The request signature we calculated 
> does not match the signature you provided. Check your key and signing method.
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.refineException(ParseAWSErrorFromXmlContent.java:122)
> at 
> org.jclouds.s3.handlers.ParseS3ErrorFromXmlContent.refineException(ParseS3ErrorFromXmlContent.java:97)
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(ParseAWSErrorFromXmlContent.java:89)
> at 
> org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
> at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123)
> at com.sun.proxy.$Proxy56.listBucket(Unknown Source)
> at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:175)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStore.isDirectory(JCloudsBlobStore.java:160)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStoreTest.isDirectory(JCloudsBlobStoreTest.java:132)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

[jira] [Commented] (JCLOUDS-1401) S3 SignatureDoesNotMatch when listing keys using prefix with ampersand

2018-07-11 Thread ASF subversion and git services (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16540353#comment-16540353
 ] 

ASF subversion and git services commented on JCLOUDS-1401:
--

Commit a29f6065c44e66ab3f62008828978decb923d90e in jclouds's branch 
refs/heads/2.1.x from [~jesse.gl...@netbeans.com]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=a29f606 ]

Live test demonstrating effectiveness of JCLOUDS-1401 fix.


> S3 SignatureDoesNotMatch when listing keys using prefix with ampersand
> --
>
> Key: JCLOUDS-1401
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1401
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.0.0
>Reporter: Carlos Sanchez
>Priority: Trivial
>  Labels: aws-s3, s3
>
> When using a prefix with ampersand {{&}} the list request fails with this 
> exception. 
> The AWS SDK handles it fine
> {code}
> public void testAmpersand() throws Exception {
> String key = getPrefix() + "xxx#?:&$'\"<>čॐ";
> try {
> blobStore.putBlob(getContainer(), 
> blobStore.blobBuilder(key).payload("test").build());
> final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
> // works fine
> ListObjectsV2Result result = s3.listObjectsV2(getContainer(), 
> key);
> List objects = result.getObjectSummaries();
> assertThat(objects, not(empty()));
> // fails with
> // org.jclouds.rest.AuthorizationException: The request signature 
> we calculated does not match the signature
> // you provided. Check your key and signing method.
> PageSet list = 
> blobStore.list(getContainer(), prefix(key));
> assertThat(list, not(empty()));
> } finally {
> blobStore.removeBlob(getContainer(), key);
> }
> }
> {code}
> {code}
> org.jclouds.rest.AuthorizationException: The request signature we calculated 
> does not match the signature you provided. Check your key and signing method.
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.refineException(ParseAWSErrorFromXmlContent.java:122)
> at 
> org.jclouds.s3.handlers.ParseS3ErrorFromXmlContent.refineException(ParseS3ErrorFromXmlContent.java:97)
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(ParseAWSErrorFromXmlContent.java:89)
> at 
> org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
> at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123)
> at com.sun.proxy.$Proxy56.listBucket(Unknown Source)
> at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:175)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStore.isDirectory(JCloudsBlobStore.java:160)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStoreTest.isDirectory(JCloudsBlobStoreTest.java:132)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> at 
> org.junit.runners.BlockJUnit4

[jira] [Commented] (JCLOUDS-1401) S3 SignatureDoesNotMatch when listing keys using prefix with ampersand

2018-07-11 Thread ASF subversion and git services (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16540354#comment-16540354
 ] 

ASF subversion and git services commented on JCLOUDS-1401:
--

Commit ddcb04c85a77ecb4d48e36b516a49c09d254b147 in jclouds's branch 
refs/heads/2.1.x from [~jesse.gl...@netbeans.com]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=ddcb04c ]

Pinning down JCLOUDS-1401 fix behavior with a unit test which is able to 
distinguish URI.query from URI.rawQuery.


> S3 SignatureDoesNotMatch when listing keys using prefix with ampersand
> --
>
> Key: JCLOUDS-1401
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1401
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.0.0
>Reporter: Carlos Sanchez
>Priority: Trivial
>  Labels: aws-s3, s3
>
> When using a prefix with ampersand {{&}} the list request fails with this 
> exception. 
> The AWS SDK handles it fine
> {code}
> public void testAmpersand() throws Exception {
> String key = getPrefix() + "xxx#?:&$'\"<>čॐ";
> try {
> blobStore.putBlob(getContainer(), 
> blobStore.blobBuilder(key).payload("test").build());
> final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
> // works fine
> ListObjectsV2Result result = s3.listObjectsV2(getContainer(), 
> key);
> List objects = result.getObjectSummaries();
> assertThat(objects, not(empty()));
> // fails with
> // org.jclouds.rest.AuthorizationException: The request signature 
> we calculated does not match the signature
> // you provided. Check your key and signing method.
> PageSet list = 
> blobStore.list(getContainer(), prefix(key));
> assertThat(list, not(empty()));
> } finally {
> blobStore.removeBlob(getContainer(), key);
> }
> }
> {code}
> {code}
> org.jclouds.rest.AuthorizationException: The request signature we calculated 
> does not match the signature you provided. Check your key and signing method.
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.refineException(ParseAWSErrorFromXmlContent.java:122)
> at 
> org.jclouds.s3.handlers.ParseS3ErrorFromXmlContent.refineException(ParseS3ErrorFromXmlContent.java:97)
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(ParseAWSErrorFromXmlContent.java:89)
> at 
> org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
> at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123)
> at com.sun.proxy.$Proxy56.listBucket(Unknown Source)
> at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:175)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStore.isDirectory(JCloudsBlobStore.java:160)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStoreTest.isDirectory(JCloudsBlobStoreTest.java:132)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> at org.junit.runners.ParentRunner.runLeaf(Pare

[jira] [Commented] (JCLOUDS-1401) S3 SignatureDoesNotMatch when listing keys using prefix with ampersand

2018-07-11 Thread ASF subversion and git services (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16540349#comment-16540349
 ] 

ASF subversion and git services commented on JCLOUDS-1401:
--

Commit 019ccb74316374498f9fdac0339621b2a3b6ad76 in jclouds's branch 
refs/heads/master from [~jesse.gl...@netbeans.com]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=019ccb7 ]

Pinning down JCLOUDS-1401 fix behavior with a unit test which is able to 
distinguish URI.query from URI.rawQuery.


> S3 SignatureDoesNotMatch when listing keys using prefix with ampersand
> --
>
> Key: JCLOUDS-1401
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1401
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.0.0
>Reporter: Carlos Sanchez
>Priority: Trivial
>  Labels: aws-s3, s3
>
> When using a prefix with ampersand {{&}} the list request fails with this 
> exception. 
> The AWS SDK handles it fine
> {code}
> public void testAmpersand() throws Exception {
> String key = getPrefix() + "xxx#?:&$'\"<>čॐ";
> try {
> blobStore.putBlob(getContainer(), 
> blobStore.blobBuilder(key).payload("test").build());
> final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
> // works fine
> ListObjectsV2Result result = s3.listObjectsV2(getContainer(), 
> key);
> List objects = result.getObjectSummaries();
> assertThat(objects, not(empty()));
> // fails with
> // org.jclouds.rest.AuthorizationException: The request signature 
> we calculated does not match the signature
> // you provided. Check your key and signing method.
> PageSet list = 
> blobStore.list(getContainer(), prefix(key));
> assertThat(list, not(empty()));
> } finally {
> blobStore.removeBlob(getContainer(), key);
> }
> }
> {code}
> {code}
> org.jclouds.rest.AuthorizationException: The request signature we calculated 
> does not match the signature you provided. Check your key and signing method.
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.refineException(ParseAWSErrorFromXmlContent.java:122)
> at 
> org.jclouds.s3.handlers.ParseS3ErrorFromXmlContent.refineException(ParseS3ErrorFromXmlContent.java:97)
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(ParseAWSErrorFromXmlContent.java:89)
> at 
> org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
> at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123)
> at com.sun.proxy.$Proxy56.listBucket(Unknown Source)
> at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:175)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStore.isDirectory(JCloudsBlobStore.java:160)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStoreTest.isDirectory(JCloudsBlobStoreTest.java:132)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> at org.junit.runners.ParentRunner.runLeaf(Par

[jira] [Commented] (JCLOUDS-1401) S3 SignatureDoesNotMatch when listing keys using prefix with ampersand

2018-07-11 Thread ASF subversion and git services (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16540347#comment-16540347
 ] 

ASF subversion and git services commented on JCLOUDS-1401:
--

Commit f770455ff9f53a9413353cc0d4d534a3e1f6fb83 in jclouds's branch 
refs/heads/master from [~jesse.gl...@netbeans.com]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=f770455 ]

[JCLOUDS-1401] Properly URL-encode the CanonicalQueryString when it contains 
funny characters.


> S3 SignatureDoesNotMatch when listing keys using prefix with ampersand
> --
>
> Key: JCLOUDS-1401
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1401
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.0.0
>Reporter: Carlos Sanchez
>Priority: Trivial
>  Labels: aws-s3, s3
>
> When using a prefix with ampersand {{&}} the list request fails with this 
> exception. 
> The AWS SDK handles it fine
> {code}
> public void testAmpersand() throws Exception {
> String key = getPrefix() + "xxx#?:&$'\"<>čॐ";
> try {
> blobStore.putBlob(getContainer(), 
> blobStore.blobBuilder(key).payload("test").build());
> final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
> // works fine
> ListObjectsV2Result result = s3.listObjectsV2(getContainer(), 
> key);
> List objects = result.getObjectSummaries();
> assertThat(objects, not(empty()));
> // fails with
> // org.jclouds.rest.AuthorizationException: The request signature 
> we calculated does not match the signature
> // you provided. Check your key and signing method.
> PageSet list = 
> blobStore.list(getContainer(), prefix(key));
> assertThat(list, not(empty()));
> } finally {
> blobStore.removeBlob(getContainer(), key);
> }
> }
> {code}
> {code}
> org.jclouds.rest.AuthorizationException: The request signature we calculated 
> does not match the signature you provided. Check your key and signing method.
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.refineException(ParseAWSErrorFromXmlContent.java:122)
> at 
> org.jclouds.s3.handlers.ParseS3ErrorFromXmlContent.refineException(ParseS3ErrorFromXmlContent.java:97)
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(ParseAWSErrorFromXmlContent.java:89)
> at 
> org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
> at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123)
> at com.sun.proxy.$Proxy56.listBucket(Unknown Source)
> at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:175)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStore.isDirectory(JCloudsBlobStore.java:160)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStoreTest.isDirectory(JCloudsBlobStoreTest.java:132)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)

[jira] [Commented] (JCLOUDS-1401) S3 SignatureDoesNotMatch when listing keys using prefix with ampersand

2018-07-11 Thread ASF subversion and git services (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16540348#comment-16540348
 ] 

ASF subversion and git services commented on JCLOUDS-1401:
--

Commit 9a65be789e760cf279b6df525d6bfc7bd94732dd in jclouds's branch 
refs/heads/master from [~jesse.gl...@netbeans.com]
[ https://git-wip-us.apache.org/repos/asf?p=jclouds.git;h=9a65be7 ]

Live test demonstrating effectiveness of JCLOUDS-1401 fix.


> S3 SignatureDoesNotMatch when listing keys using prefix with ampersand
> --
>
> Key: JCLOUDS-1401
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1401
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.0.0
>Reporter: Carlos Sanchez
>Priority: Trivial
>  Labels: aws-s3, s3
>
> When using a prefix with ampersand {{&}} the list request fails with this 
> exception. 
> The AWS SDK handles it fine
> {code}
> public void testAmpersand() throws Exception {
> String key = getPrefix() + "xxx#?:&$'\"<>čॐ";
> try {
> blobStore.putBlob(getContainer(), 
> blobStore.blobBuilder(key).payload("test").build());
> final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
> // works fine
> ListObjectsV2Result result = s3.listObjectsV2(getContainer(), 
> key);
> List objects = result.getObjectSummaries();
> assertThat(objects, not(empty()));
> // fails with
> // org.jclouds.rest.AuthorizationException: The request signature 
> we calculated does not match the signature
> // you provided. Check your key and signing method.
> PageSet list = 
> blobStore.list(getContainer(), prefix(key));
> assertThat(list, not(empty()));
> } finally {
> blobStore.removeBlob(getContainer(), key);
> }
> }
> {code}
> {code}
> org.jclouds.rest.AuthorizationException: The request signature we calculated 
> does not match the signature you provided. Check your key and signing method.
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.refineException(ParseAWSErrorFromXmlContent.java:122)
> at 
> org.jclouds.s3.handlers.ParseS3ErrorFromXmlContent.refineException(ParseS3ErrorFromXmlContent.java:97)
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(ParseAWSErrorFromXmlContent.java:89)
> at 
> org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
> at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123)
> at com.sun.proxy.$Proxy56.listBucket(Unknown Source)
> at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:175)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStore.isDirectory(JCloudsBlobStore.java:160)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStoreTest.isDirectory(JCloudsBlobStoreTest.java:132)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> at 
> org.junit.runners.BlockJUnit

[jira] [Commented] (JCLOUDS-1401) S3 SignatureDoesNotMatch when listing keys using prefix with ampersand

2018-07-09 Thread Jesse Glick (JIRA)


[ 
https://issues.apache.org/jira/browse/JCLOUDS-1401?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16537962#comment-16537962
 ] 

Jesse Glick commented on JCLOUDS-1401:
--

I filed PR 1226 with a proposed fix.

> S3 SignatureDoesNotMatch when listing keys using prefix with ampersand
> --
>
> Key: JCLOUDS-1401
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1401
> Project: jclouds
>  Issue Type: Bug
>  Components: jclouds-blobstore
>Affects Versions: 2.0.0
>Reporter: Carlos Sanchez
>Priority: Trivial
>  Labels: aws-s3, s3
>
> When using a prefix with ampersand {{&}} the list request fails with this 
> exception. 
> The AWS SDK handles it fine
> {code}
> public void testAmpersand() throws Exception {
> String key = getPrefix() + "xxx#?:&$'\"<>čॐ";
> try {
> blobStore.putBlob(getContainer(), 
> blobStore.blobBuilder(key).payload("test").build());
> final AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
> // works fine
> ListObjectsV2Result result = s3.listObjectsV2(getContainer(), 
> key);
> List objects = result.getObjectSummaries();
> assertThat(objects, not(empty()));
> // fails with
> // org.jclouds.rest.AuthorizationException: The request signature 
> we calculated does not match the signature
> // you provided. Check your key and signing method.
> PageSet list = 
> blobStore.list(getContainer(), prefix(key));
> assertThat(list, not(empty()));
> } finally {
> blobStore.removeBlob(getContainer(), key);
> }
> }
> {code}
> {code}
> org.jclouds.rest.AuthorizationException: The request signature we calculated 
> does not match the signature you provided. Check your key and signing method.
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.refineException(ParseAWSErrorFromXmlContent.java:122)
> at 
> org.jclouds.s3.handlers.ParseS3ErrorFromXmlContent.refineException(ParseS3ErrorFromXmlContent.java:97)
> at 
> org.jclouds.aws.handlers.ParseAWSErrorFromXmlContent.handleError(ParseAWSErrorFromXmlContent.java:89)
> at 
> org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:65)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.shouldContinue(BaseHttpCommandExecutorService.java:140)
> at 
> org.jclouds.http.internal.BaseHttpCommandExecutorService.invoke(BaseHttpCommandExecutorService.java:109)
> at org.jclouds.rest.internal.InvokeHttpMethod.invoke(InvokeHttpMethod.java:90)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:73)
> at org.jclouds.rest.internal.InvokeHttpMethod.apply(InvokeHttpMethod.java:44)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.handle(DelegatesToInvocationFunction.java:156)
> at 
> org.jclouds.rest.internal.DelegatesToInvocationFunction.invoke(DelegatesToInvocationFunction.java:123)
> at com.sun.proxy.$Proxy56.listBucket(Unknown Source)
> at org.jclouds.s3.blobstore.S3BlobStore.list(S3BlobStore.java:175)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStore.isDirectory(JCloudsBlobStore.java:160)
> at 
> io.jenkins.plugins.artifact_manager_s3.JCloudsBlobStoreTest.isDirectory(JCloudsBlobStoreTest.java:132)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at 
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
> at 
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
> at 
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
> at 
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
> at 
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
> at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
> at org.junit.rules.RunRules.evaluate(RunRules.java:20)
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
> at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
> at 
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
> at org.junit.runners.ParentRunner$1.sched