Jarek Potiuk created AIRFLOW-3264:
-------------------------------------

             Summary: Only '/' is URL-decoded when parsing hostname in the 
Connection
                 Key: AIRFLOW-3264
                 URL: https://issues.apache.org/jira/browse/AIRFLOW-3264
             Project: Apache Airflow
          Issue Type: Bug
          Components: database
            Reporter: Jarek Potiuk


Parsing of the URL for connection(using AIRFLOW_CONN_ environment variables) 
does not perform full URL-decode on the URL. It only handles hard-coded %2f 
encode to support "/" in hostname. However there are valid cases where the 
hostname, login, password, and query parameters can contain url-encoded values. 
For example in cloud-sql-proxy, generated socket path contains ":" (for example 
{{/cloudsql/myProject:us-central1:myInstance)}}

We need to URL-encode ":" because otherwise urlparse will treat those ":" as 
separator for port number. Similarly user/password can contain url-encoded 
characters.

I think we should fully URL-decode all relevant URL fields (including query 
parameters, user, password, hostname, path). However it is potentially breaking 
change (if someone has a user/password/hostname with % ) so maybe we should do 
some compromises around that (for example not decode the password - which are 
likely to contain '%' characters) although that would violate URL 
encoding/decoding specification.

I will provide proposed fix shortly



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to