From e16267604bd90661b64ba05547be0a5ba5e40f16 Mon Sep 17 00:00:00 2001 From: pspeter Date: Wed, 13 Apr 2022 14:44:30 +0200 Subject: [PATCH 1/3] Fix bug in THttpClient proxy handling --- lib/py/src/transport/THttpClient.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/py/src/transport/THttpClient.py b/lib/py/src/transport/THttpClient.py index 82ca3d12dfb..9fa21a984aa 100644 --- a/lib/py/src/transport/THttpClient.py +++ b/lib/py/src/transport/THttpClient.py @@ -100,7 +100,7 @@ def basic_proxy_auth_header(proxy): ap = "%s:%s" % (urllib.parse.unquote(proxy.username), urllib.parse.unquote(proxy.password)) cr = base64.b64encode(ap.encode()).strip() - return "Basic " + cr + return "Basic " + cr.decode() def using_proxy(self): return self.realhost is not None From 77d56bf5b4ecaf933ef695f3e09903db8eba0704 Mon Sep 17 00:00:00 2001 From: pspeter Date: Wed, 20 Apr 2022 10:40:52 +0200 Subject: [PATCH 2/3] Ensure return type is str in Py2 and 3 In Python2, str(cr) returns a cr unchanged, since it is already a str. In Python3, 'cr' is a binary array (like str in Python2), but we cannot concat a str with a bin in Py3. Therefore, we convert it to str using str(cr), before concatenating it with 'Basic '. --- lib/py/src/transport/THttpClient.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/py/src/transport/THttpClient.py b/lib/py/src/transport/THttpClient.py index 9fa21a984aa..b84a62c877f 100644 --- a/lib/py/src/transport/THttpClient.py +++ b/lib/py/src/transport/THttpClient.py @@ -100,7 +100,7 @@ def basic_proxy_auth_header(proxy): ap = "%s:%s" % (urllib.parse.unquote(proxy.username), urllib.parse.unquote(proxy.password)) cr = base64.b64encode(ap.encode()).strip() - return "Basic " + cr.decode() + return "Basic " + str(cr) def using_proxy(self): return self.realhost is not None From 8beeca9dae94bd9f6d9644a153a2971b11478de4 Mon Sep 17 00:00:00 2001 From: pspeter Date: Thu, 21 Apr 2022 10:14:10 +0200 Subject: [PATCH 3/3] Fix conversion to str without including quotes --- lib/py/src/transport/THttpClient.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/py/src/transport/THttpClient.py b/lib/py/src/transport/THttpClient.py index b84a62c877f..c2a4f14e6de 100644 --- a/lib/py/src/transport/THttpClient.py +++ b/lib/py/src/transport/THttpClient.py @@ -100,7 +100,7 @@ def basic_proxy_auth_header(proxy): ap = "%s:%s" % (urllib.parse.unquote(proxy.username), urllib.parse.unquote(proxy.password)) cr = base64.b64encode(ap.encode()).strip() - return "Basic " + str(cr) + return "Basic " + six.ensure_str(cr) def using_proxy(self): return self.realhost is not None