diff options
author | Zuul <zuul@review.opendev.org> | 2020-01-29 19:10:21 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2020-01-29 19:10:21 +0000 |
commit | 898cb928c7bae882ffc336c29098ccc38db7fb3c (patch) | |
tree | 809dd96c9b33e9d4d006bd98bca2ae75117b2cc2 /swift/common/middleware/s3api/s3request.py | |
parent | 3010d318043e8a2fbd1c6bc8595e185b2201e247 (diff) | |
parent | bd063b678992a710f423a86d392a34237a8379ba (diff) | |
download | swift-898cb928c7bae882ffc336c29098ccc38db7fb3c.tar.gz |
Merge "s3api: use native strings in s3api.auth_details access_key"
Diffstat (limited to 'swift/common/middleware/s3api/s3request.py')
-rw-r--r-- | swift/common/middleware/s3api/s3request.py | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/swift/common/middleware/s3api/s3request.py b/swift/common/middleware/s3api/s3request.py index 8aa41bd4a..fa39a68d8 100644 --- a/swift/common/middleware/s3api/s3request.py +++ b/swift/common/middleware/s3api/s3request.py @@ -253,15 +253,16 @@ class SigV4Mixin(object): self.params.get('X-Amz-Algorithm')) try: cred_param = self._parse_credential( - self.params['X-Amz-Credential']) - sig = self.params['X-Amz-Signature'] + swob.wsgi_to_str(self.params['X-Amz-Credential'])) + sig = swob.wsgi_to_str(self.params['X-Amz-Signature']) if not sig: raise AccessDenied() except KeyError: raise AccessDenied() try: - signed_headers = self.params['X-Amz-SignedHeaders'] + signed_headers = swob.wsgi_to_str( + self.params['X-Amz-SignedHeaders']) except KeyError: # TODO: make sure if is it malformed request? raise AuthorizationHeaderMalformed() @@ -298,7 +299,7 @@ class SigV4Mixin(object): :raises: AuthorizationHeaderMalformed """ - auth_str = self.headers['Authorization'] + auth_str = swob.wsgi_to_str(self.headers['Authorization']) cred_param = self._parse_credential(auth_str.partition( "Credential=")[2].split(',')[0]) sig = auth_str.partition("Signature=")[2].split(',')[0] @@ -371,7 +372,7 @@ class SigV4Mixin(object): headers_to_sign = [ (key, value) for key, value in sorted(headers_lower_dict.items()) - if key in self._signed_headers] + if swob.wsgi_to_str(key) in self._signed_headers] if len(headers_to_sign) != len(self._signed_headers): # NOTE: if we are missing the header suggested via @@ -646,9 +647,9 @@ class S3Request(swob.Request): :raises: AccessDenied """ try: - access = self.params['AWSAccessKeyId'] - expires = self.params['Expires'] - sig = self.params['Signature'] + access = swob.wsgi_to_str(self.params['AWSAccessKeyId']) + expires = swob.wsgi_to_str(self.params['Expires']) + sig = swob.wsgi_to_str(self.params['Signature']) except KeyError: raise AccessDenied() @@ -664,7 +665,7 @@ class S3Request(swob.Request): :returns: a tuple of access_key and signature :raises: AccessDenied """ - auth_str = self.headers['Authorization'] + auth_str = swob.wsgi_to_str(self.headers['Authorization']) if not auth_str.startswith('AWS ') or ':' not in auth_str: raise AccessDenied() # This means signature format V2 |