Login into Hue using the Python Request library

Published on 22 July 2016 in Development - 2 minutes read - Last modified on 19 April 2021

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

03 May 2023
Discover the power of Apache Ozone using the Hue File Browser
Read More
23 January 2023
Hue 4.11 and its new dialects and features are out!
Read More