From: Zhang Shaowen Date: Wed, 9 Aug 2017 17:51:40 +0000 (-0400) Subject: rgw: replace '+' with "%20" in canonical query string for s3 v4 auth. X-Git-Tag: v10.2.10~52^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F16951%2Fhead;p=ceph.git rgw: replace '+' with "%20" in canonical query string for s3 v4 auth. Fixes: http://tracker.ceph.com/issues/20501 Signed-off-by: Zhang Shaowen (cherry picked from commit 416bc51101b4ae5da569c9bc3d8d738eeadc25a6) Signed-off-by: Matt Benjamin --- diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index e99c3866a516..82667d6c5e17 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -3734,6 +3734,8 @@ int RGW_Auth_S3::authorize_v4(RGWRados *store, struct req_state *s) if (!s->aws4_auth->canonical_qs.empty()) { + boost::replace_all(s->aws4_auth->canonical_qs, "+", "%20"); + /* handle case when query string exists. Step 3 in * http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html */