diff options
Diffstat (limited to 'gluster/swift')
-rw-r--r-- | gluster/swift/common/middleware/gswauth/swauth/middleware.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gluster/swift/common/middleware/gswauth/swauth/middleware.py b/gluster/swift/common/middleware/gswauth/swauth/middleware.py index 8581dd4..e181ece 100644 --- a/gluster/swift/common/middleware/gswauth/swauth/middleware.py +++ b/gluster/swift/common/middleware/gswauth/swauth/middleware.py @@ -320,6 +320,13 @@ class Swauth(object): password = detail['auth'].split(':')[-1] msg = base64.urlsafe_b64decode(unquote(token)) + + # https://bugs.python.org/issue5285 + if isinstance(password, unicode): + password = password.encode('utf-8') + if isinstance(msg, unicode): + msg = msg.encode('utf-8') + s = base64.encodestring(hmac.new(password, msg, sha1).digest()).strip() if s != sign: |