CDH 5.16.2实现Hue界面自动登录
1、需求背景
项目需要用到hue界面做SQL查询,需要每次点击按钮后跳转到Hue登录界面,但是每个访问项目的人都需要登录Hue界面很不实际。
2、修改Hue界面的前端代码实现界面的自动登录
2.1、Hue登陆界面的前端源代码位置
/opt/cloudera/parcels/CDH/lib/hue/desktop/core/src/desktop/templates/login.mako
2.2、将login.mako修改为如下代码即可
需要知道那些地方更改的,可以将自己的login.mako和这个login.mako做代码对比(详细代码内容见,附1)。
2.3、在url中添加账号密码信息到项目连接里面就可以实现自动登录
http://localhost:8889/hue/accounts/login?next=/&username=admin&password=admin
2.4、重启Hue
3、附页
3.1、附1
<script>function GetRequest() {var url = location.search;var theRequest = new Object();if (url.indexOf("?") != -1) {var str = url.substr(1);strs = str.split("&");for (var i = 0; i < strs.length; i++) {theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);}}return theRequest;};$(document).ready(function () {var urlParams = GetRequest();if (urlParams.username) {$('#id_username').val(urlParams.username)}if (urlParams.password) {$('#id_password').val(urlParams.password)}if ((urlParams.username || "").length > 0 && (urlParams.password || "").length > 0) {setTimeout(function() {$("form").submit()}, 200)}$("form").on("submit", function () {window.setTimeout(function () {$(".logo").find("img").addClass("waiting");}, 1000);});%if 'AllowAllBackend' in backend_names:$('#id_password').val('password');%endif%if backend_names == ['OAuthBackend']:$("input").css({"display": "block", "margin-left": "auto", "margin-right": "auto"});$("input").bind('click', function () {window.location.replace('/login/oauth/');return false;});%endif% if next:var $redirect = $('input[name="next"]');$redirect.val($redirect.val() + window.location.hash);% endif});</script>
