这篇文章主要介绍“Druid自动登录的方法”,在日常操作中,相信很多人在Druid自动登录的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Druid自动登录的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
首先说明一下,为什么要自动登录
必须要有密码,否则别人直接访问项目地址+"/druid"就可以访问,不安全;
不想有二次登录(不解释);
菜单配置路径 toDruid
;
跳转页面后,ajax触发 doDruid.json
请求;
后台编写Filter,判断路径是 doDruid
后,将地址更改为登录地址;
直接在Druid登录页面,按F12,可以看到相关代码
Form表单:
<form id="loginForm" method="post" autocomplete="off"> <fieldset> <div id="alertInfo" class="alert alert-error clearfix" > The username or password you entered is incorrect. </div> <div class="clearfix"> <input type="text" placeholder="用户名" name="loginUsername" autofocus="autofocus"> </div> <div class="clearfix"> <input type="password" placeholder="密码" name="loginPassword"> </div> <button id="loginBtn" class="btn btn-primary" type="button">Sign in</button> <button class="btn" type="reset">Reset</button> </fieldset> </form>
ajax提交代码:
$.ajax({ type: 'POST', url: "submitLogin", data: $("#loginForm").serialize(), success: function(data) { if("success" == data) location.href = "index.html"; else { $("#alertInfo").show(); $("#loginForm")[0].reset(); $("input[name=loginUsername]").focus(); } }, dataType: "text" });
登录接口为:"/submitLogin" 请求方式为:post 请求数据类型为:text 请求参数为:loginUsername=druid&loginPassword=druid
菜单配置toDruid,跳转本系统某个页面,此页面调用doDruid.json接口。 页面Ajax请求 /doDruid ,Filter 获取 /doDruid 更改路径为 /submitLogin,并添加参数账号和密码。
过滤器Filter:
HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = ((HttpServletResponse) servletResponse); String requestUrl = request.getRequestURL().toString(); // 针对druid做自动登录 if(requestUrl.contains("moni/druid/doDruid.json")){ String queryString = "loginUsername=druid&loginPassword=druid"; // 获取完整路径 StringBuffer url = new StringBuffer(requestUrl); // 获取路径加上项目名称 String tempContextUrl = url.delete(url.length() - request.getRequestURI().length(), url.length()).append(request.getServletContext().getContextPath()).append("/").toString(); /** 构造新地址,其实就是druid的登录地址 */ URL newUrl = new URL(tempContextUrl + "druid/submitLogin?" + queryString); response.setStatus(307); response.setHeader("Location", newUrl.toString()); response.setHeader("Connection", "close"); //允许所有跨域请求 response.addHeader("Access-Control-Allow-Origin", "*"); }
前端页面:
$(function(){ autoLogin(); }) /** 自动登录 @author gaoyuan */ function autoLogin(){ var loadingLayer = layer.load(1, {shade: [0.1,'#fff']});//loading $.ajax({ type: 'get', url: '${ctx}/moni/druid/doDruid.json?timeStamp='+new Date().getTime(), dataType: "text", data: {}, success: function (data) { layer.close(loadingLayer); if(data == "success"){ location.href = "${contextPath}/druid"; }else{ layer.msg('自动登录出错,请手动登录!', {icon: 2}, function(){location.href = "${contextPath}/druid";}); } },error:function(){ layer.close(loadingLayer); } }); }
关于Druid的设置就不过多介绍了,网上到处都有
此时访问 前端页面,触发Ajax,会自动进行登录,登录成功后,会跳转druid页面,大功告成!
到此,关于“Druid自动登录的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。