Apache Superset Presto Impersonation

  apache-superset, docker, openshift-3, presto, python-3.x

I have installed Apache Superset 1.0.1 on Openshift with LDAP authentication without TLS. I am able to login into Superset using LDAP authorization. If I am trying to connect to My SQL Server then it is working as expected.

Now I am trying to connect to Presto. If I pass LDAP username and password in Presto connection string then it is working as expected but if I am trying to enable impersonate through web UI then it is not working.

Normal Presto Connection String: presto://LDAP_USERNAME:[email protected]_CONNECTION_STRING:8443/hive/DB_NAME

Impersonation Presto Connection String: presto://PRESTO_CONNECTION_STRING:8443/hive/DB_NAME

I tried to override config.py method DB_CONNECTION_MUTATOR but in that method I am only getting username but password is hashed password.

DB_CONNECTION_MUTATOR Implementation:

def DB_CONNECTION_MUTATOR(uri, params, username, security_manager, source):
   user = security_manager.find_user(username=username)
   if uri.host.startswith("presto") and user:
       print("Loging User: ", username)
       print("URI: ", uri)
       print("Params: ", params)
       uri.username = username
       uri.password = user.password # Getting hashed password instead of plain text
       print("New URI: ", uri)

   return uri, params

Please anyone know how to enable impersonate with Apache Superset and Presto or any documentation available which we can refer or try. Really appreciate your help.

Source: Docker Questions

LEAVE A COMMENT