加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

shiro Ajax请求未登陆响应json串实现

发布时间:2020-12-16 01:29:18 所属栏目:百科 来源:网络整理
导读:package com.cc.sec; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.ht
package com.cc.sec; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.shiro.web.filter.authc.UserFilter; /** * 仅仅是重载了UserFilter类的redirectToLogin重定向到登陆界面模块 * * 这里考虑的情况是两种 * 1、当请求是普通的http请求,就是非Ajax请求时 直接使用UserFilter#redirectToLogin() * 2、当请求时Ajax请求时,这才是我想要重构(重载)的重点,响应的是一个json串 让客户端自己进入到登陆界面 */ public class Ajax2HttpUserFilter extends UserFilter { @Override protected void redirectToLogin(ServletRequest request,ServletResponse servletResponse) throws IOException { HttpServletResponse response = (HttpServletResponse) servletResponse; //判断请求是否是一个Ajax请求 Boolean isAjaxRe = WebUtils.isAjaxRequest((HttpServletRequest)request); if(!isAjaxRe){ //不是Ajax请求 则直接重定向到我的登陆地址 super.redirectToLogin(request,response); } else { if(redirectToLoginJson == null) initRedirectToLoginJson(); //否则响应一个json串 让前端自己跳转到登陆界面 ContextHelp.responseByJson(redirectToLoginJson,response); } } /** * 响应前端ajax请求,跳转到登陆界面的json串 */ private String redirectToLoginJson = null; /** * 同步的初始化redirectToLoginJson * 内部会再次判断redirectToLoginJson是否空 */ private synchronized void initRedirectToLoginJson() { if(redirectToLoginJson != null) return ; Map<String,Object> redirectToLogin = new HashMap<>(); redirectToLogin.put("toLogin",true); redirectToLogin.put("loginUrl",getLoginUrl()); redirectToLogin.put("status",302); redirectToLoginJson = JSONUtils.obj2json(redirectToLogin); } }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读