diff options
author | Zuul <zuul@review.openstack.org> | 2018-04-21 03:57:31 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2018-04-21 03:57:31 +0000 |
commit | 686f7a5b0b13a7ef4c7ce6721e6c9e601816ad45 (patch) | |
tree | dacae84e5010c17cdb156cbfe73d7fec4235cb41 | |
parent | cd919f5d1fa3864c3fb5a4b80cdf7723a2a95285 (diff) | |
parent | a78a25ea23a940fcc510226a2dd33731d81fb213 (diff) | |
download | keystonemiddleware-686f7a5b0b13a7ef4c7ce6721e6c9e601816ad45.tar.gz |
Merge "Double quote www_authenticate_uri"
-rw-r--r-- | keystonemiddleware/auth_token/__init__.py | 2 | ||||
-rw-r--r-- | keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py | 18 | ||||
-rw-r--r-- | releasenotes/notes/bug-1762362-3d092b15c7bab3a4.yaml | 6 |
3 files changed, 16 insertions, 10 deletions
diff --git a/keystonemiddleware/auth_token/__init__.py b/keystonemiddleware/auth_token/__init__.py index 09a7803..f0d2209 100644 --- a/keystonemiddleware/auth_token/__init__.py +++ b/keystonemiddleware/auth_token/__init__.py @@ -679,7 +679,7 @@ class AuthProtocol(BaseAuthProtocol): @property def _reject_auth_headers(self): - header_val = 'Keystone uri=\'%s\'' % self._www_authenticate_uri + header_val = 'Keystone uri="%s"' % self._www_authenticate_uri return [('WWW-Authenticate', header_val)] def _token_hashes(self, token): diff --git a/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py b/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py index fdda195..2c30f4a 100644 --- a/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py +++ b/keystonemiddleware/tests/unit/auth_token/test_auth_token_middleware.py @@ -956,37 +956,37 @@ class CommonAuthTokenMiddlewareTest(object): resp = self.call_middleware(headers={'X-Auth-Token': 'invalid-token'}, expected_status=401) - self.assertEqual("Keystone uri='https://keystone.example.com:1234'", + self.assertEqual('Keystone uri="https://keystone.example.com:1234"', resp.headers['WWW-Authenticate']) def test_request_invalid_signed_token(self): token = self.examples.INVALID_SIGNED_TOKEN resp = self.call_middleware(headers={'X-Auth-Token': token}, expected_status=401) - self.assertEqual("Keystone uri='https://keystone.example.com:1234'", + self.assertEqual('Keystone uri="https://keystone.example.com:1234"', resp.headers['WWW-Authenticate']) def test_request_invalid_signed_pkiz_token(self): token = self.examples.INVALID_SIGNED_PKIZ_TOKEN resp = self.call_middleware(headers={'X-Auth-Token': token}, expected_status=401) - self.assertEqual("Keystone uri='https://keystone.example.com:1234'", + self.assertEqual('Keystone uri="https://keystone.example.com:1234"', resp.headers['WWW-Authenticate']) def test_request_no_token(self): resp = self.call_middleware(expected_status=401) - self.assertEqual("Keystone uri='https://keystone.example.com:1234'", + self.assertEqual('Keystone uri="https://keystone.example.com:1234"', resp.headers['WWW-Authenticate']) def test_request_no_token_http(self): resp = self.call_middleware(method='HEAD', expected_status=401) - self.assertEqual("Keystone uri='https://keystone.example.com:1234'", + self.assertEqual('Keystone uri="https://keystone.example.com:1234"', resp.headers['WWW-Authenticate']) def test_request_blank_token(self): resp = self.call_middleware(headers={'X-Auth-Token': ''}, expected_status=401) - self.assertEqual("Keystone uri='https://keystone.example.com:1234'", + self.assertEqual('Keystone uri="https://keystone.example.com:1234"', resp.headers['WWW-Authenticate']) def _get_cached_token(self, token, mode='md5'): @@ -1126,7 +1126,7 @@ class CommonAuthTokenMiddlewareTest(object): self.assert_valid_last_url(token) else: self.assertEqual(401, resp.status_int) - msg = "Keystone uri='https://keystone.example.com:1234'" + msg = 'Keystone uri="https://keystone.example.com:1234"' self.assertEqual(msg, resp.headers['WWW-Authenticate']) def test_uuid_bind_token_disabled_with_kerb_user(self): @@ -1660,7 +1660,7 @@ class v2AuthTokenMiddlewareTest(BaseAuthTokenMiddlewareTest, """Unscoped requests with no default tenant ID should be rejected.""" resp = self.call_middleware(headers={'X-Auth-Token': token}, expected_status=401) - self.assertEqual("Keystone uri='https://keystone.example.com:1234'", + self.assertEqual('Keystone uri="https://keystone.example.com:1234"', resp.headers['WWW-Authenticate']) def test_unscoped_uuid_token_receives_401(self): @@ -2030,7 +2030,7 @@ class DelayedAuthTests(BaseAuthTokenMiddlewareTest): resp = self.call(middleware, expected_status=401) self.assertEqual(six.b(body), resp.body) - self.assertEqual("Keystone uri='%s'" % www_authenticate_uri, + self.assertEqual('Keystone uri="%s"' % www_authenticate_uri, resp.headers['WWW-Authenticate']) def test_delayed_auth_values(self): diff --git a/releasenotes/notes/bug-1762362-3d092b15c7bab3a4.yaml b/releasenotes/notes/bug-1762362-3d092b15c7bab3a4.yaml new file mode 100644 index 0000000..16deea3 --- /dev/null +++ b/releasenotes/notes/bug-1762362-3d092b15c7bab3a4.yaml @@ -0,0 +1,6 @@ +--- +features: + - > + [`bug 1762362 <https://bugs.launchpad.net/keystonemiddleware/+bug/1762362>`_] + The value of the header "WWW-Authenticate" in a 401 (Unauthorized) response + now is double quoted to follow the RFC requirement. |