From a3657f999e145df28078696964a7c10569153faf Mon Sep 17 00:00:00 2001 From: nachiappan-veerappan-nachiappan Date: Wed, 9 Jan 2013 15:02:32 -0800 Subject: [PATCH] Warning message is not logged for valid token-less request. if delay_auth_decision is set,auth_token middleware does not log messages for valid token-less requests. Fixes: bug #1028683 Change-Id: Ia2069686b86cc833327b11343ebaed59663fd379 --- keystoneclient/middleware/auth_token.py | 6 ++++-- tests/test_auth_token_middleware.py | 19 +++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/keystoneclient/middleware/auth_token.py b/keystoneclient/middleware/auth_token.py index 1dd72cd97..6f9d7a87a 100644 --- a/keystoneclient/middleware/auth_token.py +++ b/keystoneclient/middleware/auth_token.py @@ -375,8 +375,10 @@ class AuthProtocol(object): if token: return token else: - self.LOG.warn( - "Unable to find authentication token in headers: %s", env) + if not self.delay_auth_decision: + self.LOG.warn("Unable to find authentication token" + " in headers") + self.LOG.debug("Headers: %s", env) raise InvalidUserToken('Unable to find token in headers') def _reject_request(self, env, start_response): diff --git a/tests/test_auth_token_middleware.py b/tests/test_auth_token_middleware.py index 744a01837..324bf0118 100644 --- a/tests/test_auth_token_middleware.py +++ b/tests/test_auth_token_middleware.py @@ -610,6 +610,25 @@ class AuthTokenMiddlewareTest(test.NoModule, BaseAuthTokenMiddlewareTest): self.assertEqual(self.response_headers['WWW-Authenticate'], 'Keystone uri=\'https://keystone.example.com:1234\'') + def test_request_no_token_log_message(self): + class FakeLog(object): + def __init__(self): + self.msg = None + self.debugmsg = None + + def warn(self, msg=None, *args, **kwargs): + self.msg = msg + + def debug(self, msg=None, *args, **kwargs): + self.debugmsg = msg + + self.middleware.LOG = FakeLog() + self.middleware.delay_auth_decision = False + self.assertRaises(auth_token.InvalidUserToken, + self.middleware._get_user_token_from_header, {}) + self.assertIsNotNone(self.middleware.LOG.msg) + self.assertIsNotNone(self.middleware.LOG.debugmsg) + def test_request_blank_token(self): req = webob.Request.blank('/') req.headers['X-Auth-Token'] = ''