Jonahan Dufault created THRIFT-5503:
---------------------------------------
Summary: basic_proxy_auth_header in THttpClient.py needs to be a
byte string
Key: THRIFT-5503
URL: https://issues.apache.org/jira/browse/THRIFT-5503
Project: Thrift
Issue Type: Bug
Components: Python - Library
Environment: is this what you mean?
{code:java}
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File
"C:\ProgramData\Miniconda3\envs\databricks_connection\lib\site-packages\databricks\sql\__init__.py",
line 28, in connect
return Connection(server_hostname, http_path, access_token, **kwargs)
File
"C:\ProgramData\Miniconda3\envs\databricks_connection\lib\site-packages\databricks\sql\client.py",
line 230, in __init__
self._transport = thrift.transport.THttpClient.THttpClient(
File
"C:\ProgramData\Miniconda3\envs\databricks_connection\lib\site-packages\thrift\transport\THttpClient.py",
line 87, in __init__
self.proxy_auth = self.basic_proxy_auth_header(parsed)
File
"C:\ProgramData\Miniconda3\envs\databricks_connection\lib\site-packages\thrift\transport\THttpClient.py",
line 101, in basic_proxy_auth_header
ap = b"%s:%s" % (urllib.parse.unquote(proxy.username),
TypeError: %b requires a bytes-like object, or an object that implements
__bytes__, not 'str' {code}
Reporter: Jonahan Dufault
Please be gentle I'm really new and am trying to follow the guidelines best I
can.
[https://github.com/apache/thrift/blob/febc5121ea425d92623512367d7e365c13be31c4/lib/py/src/transport/THttpClient.py#L99]
In this line
{code:java}
ap = "%s:%s" % (urllib.parse.unquote(proxy.username),
urllib.parse.unquote(proxy.password))
cr = base64.b64encode(ap).strip() {code}
ap returns a string, but b64encode needs bytes and returns bytes. I don't know
if this is a change
the fix is pretty trivial:
{code:java}
ap = ("%s:%s" % (urllib.parse.unquote(proxy.username),
urllib.parse.unquote(proxy.password))).encode("UTF-8")
cr = base64.standard_b64encode(ap).strip().decode("UTF-8"){code}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)