]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: drop req_state::aws4_auth::payload_hash as it doesn't need to be global.
authorRadoslaw Zarzynski <rzarzynski@mirantis.com>
Fri, 14 Apr 2017 15:01:44 +0000 (17:01 +0200)
committerRadoslaw Zarzynski <rzarzynski@mirantis.com>
Wed, 7 Jun 2017 10:43:15 +0000 (12:43 +0200)
Signed-off-by: Radoslaw Zarzynski <rzarzynski@mirantis.com>
src/rgw/rgw_common.h
src/rgw/rgw_rest_s3.cc

index a0093d7bd6ee514d310f5f5bf5534238f2b2ae22..d21faebcebcb8f81bbc02154879e85884bd0459c 100644 (file)
@@ -1704,7 +1704,6 @@ struct rgw_aws4_auth {
   string canonical_hdrs;
   string signature;
   string new_signature;
-  string payload_hash;
   string seed_signature;
   char signing_key[CEPH_CRYPTO_HMACSHA256_DIGESTSIZE];
   bufferlist bl;
index dffa6bbb91cf3694ee5e88f9d1f745de40f191f7..bc65e924a17edd85455bc09dc91e00a40786f9f5 100644 (file)
@@ -3456,16 +3456,17 @@ int RGW_Auth_S3::authorize_v4_complete(RGWRados *store, struct req_state *s, con
                                                  s->aws4_auth->signed_hdrs,
                                                  expected_request_payload_hash);
 
+  std::string payload_hash;
   if (unsigned_payload) {
-    s->aws4_auth->payload_hash = "UNSIGNED-PAYLOAD";
+    payload_hash = "UNSIGNED-PAYLOAD";
   } else {
     if (s->aws4_auth_needs_complete) {
-      s->aws4_auth->payload_hash = AWS_AUTHv4_IO(s)->grab_aws4_sha256_hash();
+      payload_hash = AWS_AUTHv4_IO(s)->grab_aws4_sha256_hash();
     } else {
       if (s->aws4_auth_streaming_mode) {
-        s->aws4_auth->payload_hash = "STREAMING-AWS4-HMAC-SHA256-PAYLOAD";
+        payload_hash = "STREAMING-AWS4-HMAC-SHA256-PAYLOAD";
       } else {
-        s->aws4_auth->payload_hash = \
+        payload_hash = \
           rgw::auth::s3::hash_string_sha256(request_payload.c_str(),
                                             request_payload.size());
       }
@@ -3474,7 +3475,7 @@ int RGW_Auth_S3::authorize_v4_complete(RGWRados *store, struct req_state *s, con
 
   /* Validate x-amz-sha256 */
   if (s->aws4_auth_needs_complete) {
-    if (s->aws4_auth->payload_hash.compare(expected_request_payload_hash) != 0) {
+    if (payload_hash.compare(expected_request_payload_hash) != 0) {
       ldout(s->cct, 10) << "ERROR: x-amz-content-sha256 does not match" << dendl;
       return -ERR_AMZ_CONTENT_SHA256_MISMATCH;
     }
@@ -3625,8 +3626,6 @@ int RGW_Auth_S3::authorize_v4(RGWRados *store, struct req_state *s, bool force_b
 
   /* handle request payload */
 
-  s->aws4_auth->payload_hash = "";
-
   string request_payload;
 
   bool unsigned_payload = false;