Skip to content

Commit a0ddd29

Browse files
authored
Merge pull request ceph#56868 from clwluvw/request-payer
rgw: exclude logging of request payer for 403 requests Reviewed-by: Casey Bodley <[email protected]>
2 parents 04ef659 + d3d40f9 commit a0ddd29

File tree

1 file changed

+10
-8
lines changed

1 file changed

+10
-8
lines changed

src/rgw/rgw_log.cc

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -200,21 +200,23 @@ static void log_usage(req_state *s, const string& op_name)
200200
if (!usage_logger)
201201
return;
202202

203-
std::string user;
203+
std::string user = to_string(s->owner.id);
204204
std::string payer;
205-
string bucket_name;
206-
207-
bucket_name = s->bucket_name;
205+
string bucket_name = s->bucket_name;
208206

209207
if (!bucket_name.empty()) {
210-
bucket_name = s->bucket_name;
211208
user = to_string(s->bucket_owner.id);
209+
210+
// As per https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html#ChargeDetails
211+
// If the bucket has requester pays enabled,
212+
// and the requerster includes x-amz-request-payer in the header (this is checked by verify_requester_payer_permission and results in 403 if not present),
213+
// and the status code isn't 403,
214+
// then the requester is the payer.
212215
if (!rgw::sal::Bucket::empty(s->bucket.get()) &&
213-
s->bucket->get_info().requester_pays) {
216+
s->bucket->get_info().requester_pays &&
217+
s->err.http_ret != 403) {
214218
payer = s->user->get_id().to_str();
215219
}
216-
} else {
217-
user = to_string(s->owner.id);
218220
}
219221

220222
bool error = s->err.is_err();

0 commit comments

Comments
 (0)