From: Matthew Oliver Date: Thu, 14 May 2020 01:31:56 +0000 (+1000) Subject: rgw: S3 Put Bucket Policy should return 204 on success X-Git-Tag: v15.2.9~74^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=b0c2dcae730870e9a39ce303dc0b0d3ebdc58348;p=ceph.git rgw: S3 Put Bucket Policy should return 204 on success Currently RGW returns a 200 on a successful PUT on a bucket policy but the S3 api extects a 204, which makes sense as it's a success without any contect returned: https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTpolicy.html The sample response in the example above is a 204. This patch checks the op_ret in `RGWPutBucketPolicy::send_response()` and on a success we turn it to a 204 (or STATUS_NO_CONTENT). Fixes: https://tracker.ceph.com/issues/45467 Signed-off-by: Matthew Oliver (cherry picked from commit 7fddff78c98ef9a3c73581b892c7dfa04b64cdb3) --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 20f7b62e54b..20a8c84d153 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -7670,6 +7670,10 @@ void RGWDefaultResponseOp::send_response() { void RGWPutBucketPolicy::send_response() { + if (!op_ret) { + /* A successful Put Bucket Policy should return a 204 on success */ + op_ret = STATUS_NO_CONTENT; + } if (op_ret) { set_req_state_err(s, op_ret); }