rgw: aws4: fix test_object_create_missing_signed_header_aws4

Signed-off-by: Javier M. Mellid <jmunhoz@igalia.com>
This commit is contained in:
Javier M. Mellid 2016-06-02 20:57:48 +00:00
parent ff9fb2d8ea
commit 520eaa0b62

View file

@ -12,6 +12,7 @@ import string
import socket import socket
import ssl import ssl
import os import os
import re
from urlparse import urlparse from urlparse import urlparse
@ -1415,12 +1416,28 @@ def test_object_create_missing_signed_custom_header_aws4():
@nose.with_setup(teardown=_clear_custom_headers) @nose.with_setup(teardown=_clear_custom_headers)
def test_object_create_missing_signed_header_aws4(): def test_object_create_missing_signed_header_aws4():
check_aws4_support() check_aws4_support()
key = _setup_bad_object() method='PUT'
_add_custom_non_auth_headers(remove=('Content-MD5',)) expires_in='100000'
e = assert_raises(boto.exception.S3ResponseError, key.set_contents_from_string, 'bar') bucket = get_new_bucket()
eq(e.status, 403) key = bucket.new_key('foo')
eq(e.reason, 'Forbidden') body='zoo'
eq(e.error_code, 'SignatureDoesNotMatch')
# compute the signature...
request_headers = {}
url = key.generate_url(expires_in, method=method, headers=request_headers)
o = urlparse(url)
path = o.path + '?' + o.query
# 'X-Amz-Expires' is missing
target = r'&X-Amz-Expires=' + expires_in
path = re.sub(target, '', path)
res =_make_raw_request(host=s3.main.host, port=s3.main.port, method=method, path=path,
body=body, request_headers=request_headers, secure=s3.main.is_secure)
eq(res.status, 403)
eq(res.reason, 'Forbidden')
@tag('auth_aws4') @tag('auth_aws4')