Fixes: http://tracker.ceph.com/issues/15369
Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
const char *method;
string script_uri;
string request_uri;
+ string request_uri_aws4;
string effective_uri;
string request_params;
string domain;
{
req_info& info = s->info;
+ /* save the request uri used to hash on the client side. request_uri may suffer
+ modifications as part of the bucket encoding in the subdomain calling format.
+ request_uri_aws4 will be used under aws4 auth */
+ s->info.request_uri_aws4 = s->info.request_uri;
+
s->cio = cio;
if (info.host.size()) {
ldout(s->cct, 10) << "host=" << info.host << dendl;
* that SigV4 typically does. this code follows the same approach that boto library
* see auth.py:canonical_uri(...) */
- s->aws4_auth->canonical_uri = s->info.request_uri;
+ s->aws4_auth->canonical_uri = s->info.request_uri_aws4;
if (s->aws4_auth->canonical_uri.empty()) {
s->aws4_auth->canonical_uri = "/";