From 6bd2dae1934f5f2a752b2c0edaa937b5a4163c36 Mon Sep 17 00:00:00 2001 From: Zhang Shaowen Date: Wed, 9 Aug 2017 13:51:40 -0400 Subject: [PATCH] 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 --- src/rgw/rgw_rest_s3.cc | 2 ++ 1 file changed, 2 insertions(+) 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 */ -- 2.47.3