diff options
author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2016-06-07 20:19:55 (GMT) |
---|---|---|
committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2016-06-07 20:19:55 (GMT) |
commit | 1bf197eb14c5db5c43b3dc48687ae034690d34c4 (patch) | |
tree | c89ef3520e3ee1bf8f9cc6d7f2d725d6562d7855 | |
parent | 8bff8f6953f3256aa75871840fd89e40240d7ad7 (diff) | |
download | cpython-1bf197eb14c5db5c43b3dc48687ae034690d34c4.zip cpython-1bf197eb14c5db5c43b3dc48687ae034690d34c4.tar.gz cpython-1bf197eb14c5db5c43b3dc48687ae034690d34c4.tar.bz2 |
Fixed #27251: corrected string/bytes handling in credentials.
-rw-r--r-- | Lib/logging/handlers.py | 4 | ||||
-rw-r--r-- | Lib/test/test_logging.py | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py index c6840c3..c9f8217 100644 --- a/Lib/logging/handlers.py +++ b/Lib/logging/handlers.py @@ -1156,8 +1156,8 @@ class HTTPHandler(logging.Handler): h.putheader("Content-length", str(len(data))) if self.credentials: import base64 - s = ('u%s:%s' % self.credentials).encode('utf-8') - s = 'Basic ' + base64.b64encode(s).strip() + s = ('%s:%s' % self.credentials).encode('utf-8') + s = 'Basic ' + base64.b64encode(s).strip().decode('ascii') h.putheader('Authorization', s) h.endheaders() if self.method == "POST": diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 95575bf..84fd8b5 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -1672,7 +1672,8 @@ class HTTPHandlerTest(BaseTest): secure_client = secure and sslctx self.h_hdlr = logging.handlers.HTTPHandler(host, '/frob', secure=secure_client, - context=context) + context=context, + credentials=('foo', 'bar')) self.log_data = None root_logger.addHandler(self.h_hdlr) |