[
https://issues.apache.org/jira/browse/THRIFT-5503?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jonahan Dufault closed THRIFT-5503.
-----------------------------------
Resolution: Duplicate
already fixed in commit bf0967537bdf189a8806fe05a2710e1011370956
> 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
> Priority: Trivial
>
> 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)