成都创新互联网站制作重庆分公司

Druid自动登录的方法

这篇文章主要介绍“Druid自动登录的方法”,在日常操作中,相信很多人在Druid自动登录的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Druid自动登录的方法”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联公司专注于网站建设|企业网站维护|优化|托管以及网络推广,积累了大量的网站设计与制作经验,为许多企业提供了网站定制设计服务,案例作品覆盖成都自上料搅拌车等行业。能根据企业所处的行业与销售的产品,结合品牌形象的塑造,量身策划品质网站。

Druid 如何自动登录

首先说明一下,为什么要自动登录

  • 必须要有密码,否则别人直接访问项目地址+"/druid"就可以访问,不安全;

  • 不想有二次登录(不解释);

实现思路

  1. 菜单配置路径 toDruid;

  2. 跳转页面后,ajax触发 doDruid.json 请求;

  3. 后台编写Filter,判断路径是 doDruid 后,将地址更改为登录地址;

如何确认登录地址

直接在Druid登录页面,按F12,可以看到相关代码

Form表单:


  	
            The username or password you entered is incorrect.   
                        
                        
       Sign in        Reset   

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

如何通过Filter实现

菜单配置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自动登录的方法”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


标题名称:Druid自动登录的方法
文章链接:http://cxhlcq.com/article/jdsdss.html

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部