]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw: inherit bucket tenant from user if not specified
authorYehuda Sadeh <yehuda@redhat.com>
Mon, 30 Nov 2015 19:33:48 +0000 (11:33 -0800)
committerYehuda Sadeh <yehuda@redhat.com>
Wed, 2 Dec 2015 18:45:41 +0000 (10:45 -0800)
Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
src/rgw/rgw_rest_s3.cc

index a7268627f54493a8141847c52ca4d7dddfbf5245..16d5dea41d91579c46491069adda3afb573010fc 100644 (file)
@@ -2291,6 +2291,8 @@ int RGWHandler_ObjStore_S3::init_from_header(struct req_state *s, int default_fo
     if (s->bucket_tenant.empty())
       s->bucket_tenant = s->user.user_id.tenant;
 
+    ldout(s->cct, 20) << "s->user.user_id=" << s->user.user_id << " s->bucket_tenant=" << s->bucket_tenant << " s->bucket_name=" << s->bucket_name << dendl;
+
     if (pos >= 0) {
       string encoded_obj_str = req.substr(pos+1);
       s->object = rgw_obj_key(encoded_obj_str, s->info.args.get("versionId"));
@@ -2564,6 +2566,10 @@ int RGW_Auth_S3::authorize(RGWRados *store, struct req_state *s)
         }
 
         s->perm_mask = RGW_PERM_FULL_CONTROL;
+
+        if (s->bucket_tenant.empty()) {
+          s->bucket_tenant = s->user.user_id.tenant;
+        }
       }
     }
   }
@@ -2581,6 +2587,10 @@ int RGW_Auth_S3::authorize(RGWRados *store, struct req_state *s)
       return -ERR_INVALID_ACCESS_KEY;
     }
 
+    if (s->bucket_tenant.empty()) {
+      s->bucket_tenant = s->user.user_id.tenant;
+    }
+
     /* now verify signature */
 
     string auth_hdr;