From 1bf197eb14c5db5c43b3dc48687ae034690d34c4 Mon Sep 17 00:00:00 2001 From: Vinay Sajip Date: Tue, 7 Jun 2016 21:19:55 +0100 Subject: Fixed #27251: corrected string/bytes handling in credentials. --- Lib/logging/handlers.py | 4 ++-- 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) -- cgit v0.12