Add Python 3 support to _get_user().

This commit is contained in:
Berker Peksag 2015-07-08 12:15:38 +03:00
parent 5f3dc8ed2b
commit 117ef10176

View File

@ -14,7 +14,7 @@ import sys
import traceback
from gunicorn import util
from gunicorn.six import string_types
from gunicorn.six import PY3, string_types
# syslog facility codes
@ -378,10 +378,13 @@ class Logger(object):
auth = http_auth.split(" ", 1)
if len(auth) == 2:
try:
auth = base64.b64decode(auth[1].strip()).split(":", 1)
except TypeError:
auth = base64.b64decode(auth[1].strip())
if PY3: # b64decode returns a byte string in Python 3
auth = auth.decode('utf-8')
auth = auth.split(":", 1)
except TypeError as exc:
self.debug("Couldn't get username: %s", exc)
return user
if len(auth) == 2:
user = auth[0]
return user