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)

Reply via email to