]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/sse-s3: fix bucket encryption of multipart upload 51021/head
authorTongliang Deng <dengtongliang@gmail.com>
Tue, 13 Dec 2022 06:42:34 +0000 (06:42 +0000)
committerCasey Bodley <cbodley@redhat.com>
Tue, 11 Apr 2023 13:34:53 +0000 (09:34 -0400)
Multipart upload missing encryption when we have bucket encryption
policy. Fix it by fetching bucket encryption policy and resolving
defaults at multipart init op.

Fixes: https://tracker.ceph.com/issues/59218
Signed-off-by: Tongliang Deng <dengtongliang@gmail.com>
(cherry picked from commit 6d9e4f7924c6149d23919ef82bc09406e1290164)

src/rgw/rgw_op.cc
src/rgw/rgw_rest_s3.cc

index 21b7737f66f000e84d35b4a1f503031996e8b5cb..ea396e20b35572b01c591e9e224c94cb70ef2c0d 100644 (file)
@@ -6245,8 +6245,10 @@ void RGWInitMultipart::execute(optional_yield y)
   bufferlist aclbl, tracebl;
   rgw::sal::Attrs attrs;
 
-  if (get_params(y) < 0)
+  op_ret = get_params(y);
+  if (op_ret < 0) {
     return;
+  }
 
   if (rgw::sal::Object::empty(s->object.get()))
     return;
index ccb8a397aec258ca2f87b4e1389de659a3b26fd6..f8606932bb6e652dc457cab0e097638580937864 100644 (file)
@@ -3886,10 +3886,18 @@ void RGWSetRequestPayment_ObjStore_S3::send_response()
 
 int RGWInitMultipart_ObjStore_S3::get_params(optional_yield y)
 {
+  int ret;
+
+  ret = get_encryption_defaults(s);
+  if (ret < 0) {
+    ldpp_dout(this, 5) << __func__ << "(): get_encryption_defaults() returned ret=" << ret << dendl;
+    return ret;
+  }
+
   RGWAccessControlPolicy_S3 s3policy(s->cct);
-  op_ret = create_s3_policy(s, driver, s3policy, s->owner);
-  if (op_ret < 0)
-    return op_ret;
+  ret = create_s3_policy(s, driver, s3policy, s->owner);
+  if (ret < 0)
+    return ret;
 
   policy = s3policy;