Login into Hue using the Python Request library

22 July 2016 in Administration / Development - 2 minutes read

In this little snippet we will show you how to login into HUE using python requests library.

Hue is based on the Django Web Framework. Django comes with user authentication system. Django uses sessions and middleware to hook the authentication system into request object. HUE uses stock auth form which uses “username” and “password” and “csrftoken” form variables to authenticate.

In this code snippet, we will use well-known python “requests” library. we will first acquire “csrftoken” by GET “login_url”. We will create python dictionary of form data which contains “username”, “password” and “csrftoken” and the “next_url” and another python dictionary for header which contains the “Referer” url and empty python dictionary for the cookies. After POST request to “login_url” we will get status. Check the r.status_code. If r.status_code!=200 then you have problem in username and/or password.

Once the request is successful then capture headers and cookies for subsequent requests. Subsequent request.session calls can be made by providing cookies=session.cookies and headers=session.headers.

[sourcecode language=“python” wraplines=“false” collapse=“false”]

import requests

def login_djangosite():

next_url = “/”

login_url = “http://localhost:8888/accounts/login?next=/"

session = requests.Session()

r = session.get(login_url)

form_data = dict(username=”[your hue username]“,password=”[your hue password]“,

csrfmiddlewaretoken=session.cookies[‘csrftoken’],next=next_url)

r = session.post(login_url, data=form_data, cookies=dict(), headers=dict(Referer=login_url))

# check if request executed successfully?

print r.status_code

cookies = session.cookies

headers = session.headers

r=session.get(‘http://localhost:8888/metastore/databases/default/metadata',

cookies=session.cookies, headers=session.headers)

print r.status_code

# check metadata output

print r.text

[/sourcecode]


comments powered by Disqus

More recent stories

13 November 2019
Visually surfacing SQL information like Primary Keys, Foreign Keys, Views and Complex Types
Read More
31 October 2019
Missing some color? How to improve or add your own SQL syntax Highlighter
Read More
24 October 2019
How to create a HBase table on Kerberized Hadoop clusters
Read More