From a2f73f6a840e70f71da8336b70e989336099db11 Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Wed, 21 Jun 2017 10:19:12 -0400 Subject: [PATCH] check precedence of Date and X-Amz-Date in signatures Signed-off-by: Casey Bodley --- s3tests/functional/test_headers.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/s3tests/functional/test_headers.py b/s3tests/functional/test_headers.py index f45a162..37996b6 100644 --- a/s3tests/functional/test_headers.py +++ b/s3tests/functional/test_headers.py @@ -13,6 +13,7 @@ import socket import ssl import os import re +from email.utils import formatdate from urlparse import urlparse @@ -469,6 +470,28 @@ def test_object_create_bad_authorization_empty(): eq(e.reason, 'Forbidden') eq(e.error_code, 'AccessDenied') +@tag('auth_common') +@attr(resource='object') +@attr(method='put') +@attr(operation='create w/date and x-amz-date') +@attr(assertion='succeeds') +@nose.with_setup(teardown=_clear_custom_headers) +def test_object_create_date_and_amz_date(): + date = formatdate(usegmt=True) + key = _setup_bad_object({'Date': date, 'X-Amz-Date': date}) + key.set_contents_from_string('bar') + +@tag('auth_common') +@attr(resource='object') +@attr(method='put') +@attr(operation='create w/x-amz-date and no date') +@attr(assertion='succeeds') +@nose.with_setup(teardown=_clear_custom_headers) +def test_object_create_amz_date_and_no_date(): + date = formatdate(usegmt=True) + key = _setup_bad_object({'X-Amz-Date': date}, ('Date',)) + key.set_contents_from_string('bar') + # the teardown is really messed up here. check it out @tag('auth_common')