[
https://issues.apache.org/jira/browse/JCLOUDS-1631?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17836909#comment-17836909
]
ASF subversion and git services commented on JCLOUDS-1631:
----------------------------------------------------------
Commit 0688553087aabdaa7f503265bbc4a4cb60adef55 in jclouds's branch
refs/heads/master from Maksim_Hadalau
[ https://gitbox.apache.org/repos/asf?p=jclouds.git;h=0688553087 ]
JCLOUDS-1631: fix AWSRequestAuthorizeSignatureV4 when prefix contains special
chars
> AWS S3, sign for authorization header failed if query part contains special
> chars
> ---------------------------------------------------------------------------------
>
> Key: JCLOUDS-1631
> URL: https://issues.apache.org/jira/browse/JCLOUDS-1631
> Project: jclouds
> Issue Type: Bug
> Components: jclouds-blobstore
> Affects Versions: 2.5.0
> Reporter: Maksim Hadalau
> Priority: Major
> Time Spent: 40m
> Remaining Estimate: 0h
>
> Problem description:
> Can not list blobs for aws-s3 provider if prefix contains special chars %/&
> Steps to reproduce:
> try to list blobs with following prefix:
> "Folder (`~!@#$%^&*-_+[]'|<>.?) Name/"
> Actual behavior:
> Error: URLDecoder: Incomplete trailing escape (%) pattern
> Expected behavior:
> provided prefix must be listed
> Problem location:
> `AWSRequestAuthorizeSignatureV4.signForAuthorizationHeader()`
>
> Multimap<String, String> queryMap =
> queryParser().apply(request.getEndpoint().getQuery());
> request.getEndpoint().getQuery() - returns a decoded query string
> however queryParser() require encoded one
> Fix:
> Multimap<String, String> queryMap =
> queryParser().apply(request.getEndpoint().getRawQuery());
> When jclouds generates a request to the AWS it encodes prefix (encoding all
> special chars in it, including % and &), however calling `getQuery()` returns
> decoded version of query string which lead to unpredictable behavior.
> P.S. required patch in 2.5.x if possible
> PR https://github.com/apache/jclouds/pull/200
--
This message was sent by Atlassian Jira
(v8.20.10#820010)