diff options
| -rw-r--r-- | pyramid/authentication.py | 4 | ||||
| -rw-r--r-- | pyramid/tests/test_authentication.py | 6 |
2 files changed, 5 insertions, 5 deletions
diff --git a/pyramid/authentication.py b/pyramid/authentication.py index 50752c96e..d4fd7ab8b 100644 --- a/pyramid/authentication.py +++ b/pyramid/authentication.py @@ -890,8 +890,8 @@ class BasicAuthAuthenticationPolicy(CallbackAuthenticationPolicy): if authmeth.lower() != 'basic': return None try: - auth = auth.strip().decode('base64') - except binascii.Error: # can't decode + auth = b64decode(auth.strip()).decode('ascii') + except (TypeError, binascii.Error): # can't decode return None try: username, password = auth.split(':', 1) diff --git a/pyramid/tests/test_authentication.py b/pyramid/tests/test_authentication.py index bea62894e..dfe3cf0b0 100644 --- a/pyramid/tests/test_authentication.py +++ b/pyramid/tests/test_authentication.py @@ -1123,7 +1123,7 @@ class TestBasicAuthAuthenticationPolicy(unittest.TestCase): import base64 request = testing.DummyRequest() request.headers['Authorization'] = 'Basic %s' % base64.b64encode( - 'chrisr:password') + bytes_('chrisr:password')).decode('ascii') policy = self._makeOne(None) self.assertEqual(policy.unauthenticated_userid(request), 'chrisr') @@ -1154,7 +1154,7 @@ class TestBasicAuthAuthenticationPolicy(unittest.TestCase): import base64 request = testing.DummyRequest() request.headers['Authorization'] = 'Basic %s' % base64.b64encode( - 'chrisr:password') + bytes_('chrisr:password')).decode('ascii') def check(username, password, request): return [] policy = self._makeOne(check) @@ -1164,7 +1164,7 @@ class TestBasicAuthAuthenticationPolicy(unittest.TestCase): import base64 request = testing.DummyRequest() request.headers['Authorization'] = 'Basic %s' % base64.b64encode( - 'chrisrpassword') + bytes_('chrisrpassword')).decode('ascii') policy = self._makeOne(None) self.assertEqual(policy.unauthenticated_userid(request), None) |
