From: Javier M. Mellid Date: Tue, 5 Apr 2016 14:00:10 +0000 (+0200) Subject: rgw: aws4 uri encoding bugfix X-Git-Tag: v10.1.2~46^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F8445%2Fhead;p=ceph.git rgw: aws4 uri encoding bugfix Fixes: http://tracker.ceph.com/issues/15358 Signed-off-by: Javier M. Mellid --- diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index e4731ba0a0bc..d8119f9d4219 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -3437,8 +3437,20 @@ int RGW_Auth_S3::authorize_v4(RGWRados *store, struct req_state *s) string encoded_key; string encoded_val; if (key != "X-Amz-Credential") { - aws4_uri_encode(key, encoded_key); - aws4_uri_encode(val, encoded_val); + string key_decoded; + url_decode(key, key_decoded); + if (key.length() != key_decoded.length()) { + encoded_key = key; + } else { + aws4_uri_encode(key, encoded_key); + } + string val_decoded; + url_decode(val, val_decoded); + if (val.length() != val_decoded.length()) { + encoded_val = val; + } else { + aws4_uri_encode(val, encoded_val); + } } else { encoded_key = key; encoded_val = val;