]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: pick http_date in case of http_x_amz_date absence 53441/head
authorSeena Fallah <seenafallah@gmail.com>
Fri, 9 Jun 2023 12:14:24 +0000 (14:14 +0200)
committerMykola Golub <mgolub@suse.com>
Wed, 13 Sep 2023 13:27:23 +0000 (16:27 +0300)
From the AWS doc:
The request date can be specified by using either the HTTP Date or the x-amz-date header. If both headers are present, x-amz-date takes precedence.
Refs: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html

Fixes: https://tracker.ceph.com/issues/61629
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
(cherry picked from commit 912b7745181a221bc8468317c83f4c461933208e)

src/rgw/rgw_auth_s3.cc

index 241d14f6efe80e9bbcf27088a4717278952268da..89d3b6659163a9ade48227dac26696c72e386f9a 100644 (file)
@@ -436,8 +436,11 @@ static inline int parse_v4_auth_header(const req_info& info,               /* in
   const char *d = info.env->get("HTTP_X_AMZ_DATE");
 
   struct tm t;
+  if (unlikely(d == NULL)) {
+    d = info.env->get("HTTP_DATE");
+  }
   if (!d || !parse_iso8601(d, &t, NULL, false)) {
-    ldpp_dout(dpp, 10) << "error reading date via http_x_amz_date" << dendl;
+    ldpp_dout(dpp, 10) << "error reading date via http_x_amz_date and http_date" << dendl;
     return -EACCES;
   }
   date = d;