博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc 登录鉴权过滤器
阅读量:2432 次
发布时间:2019-05-10

本文共 2749 字,大约阅读时间需要 9 分钟。

package com.common.filter;import java.io.IOException;import javax.servlet.FilterChain;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.http.HttpStatus;import org.springframework.web.filter.OncePerRequestFilter;import com.common.util.SessionKeyContent;/** * 登录过滤器 * 
<功能详细描述>
* * @author chenlujun * @version [版本号, 2014年10月11日] * @see [相关类/方法] * @since [产品/模块版本] */public class SessionFilter extends OncePerRequestFilter{ /** 登录验证过滤器 */ @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { // 不过滤的uri String[] notFilter = new String[] {"/images", "/js", "/css", "/login/tologin", "/login/mainframe", "/user/exist", "/user/checkPassword", "/signcode"}; // 请求的uri String uri = request.getRequestURI(); // 是否过滤 boolean doFilter = true; for (String s : notFilter) { if (uri.indexOf(s) != -1) { // 如果uri中包含不过滤的uri,则不进行过滤 doFilter = false; break; } } if (doFilter) { // 执行过滤 // 从session中获取登录者实体 Object obj = request.getSession().getAttribute(SessionKeyContent.SESSION_KEY_OBJ_USER_BEAN); if (null == obj) { boolean isAjaxRequest = isAjaxRequest(request); if (isAjaxRequest) { response.setCharacterEncoding("UTF-8"); response.sendError(HttpStatus.UNAUTHORIZED.value(), "您已经太长时间没有操作,请刷新页面"); return ; } response.sendRedirect("../login/tologin"); return; } else { // 如果session中存在登录者实体,则继续 filterChain.doFilter(request, response); } } else { // 如果不执行过滤,则继续 filterChain.doFilter(request, response); } } /** 判断是否为Ajax请求 *
<功能详细描述>
* @param request * @return 是true, 否false * @see [类、类#方法、类#成员] */ public static boolean isAjaxRequest(HttpServletRequest request) { String header = request.getHeader("X-Requested-With"); if (header != null && "XMLHttpRequest".equals(header)) return true; else return false; } }

web.xml中配置

sessionFilter
com.common.filter.SessionFilter
sessionFilter
/*

转载地址:http://xzvmb.baihongyu.com/

你可能感兴趣的文章
滴滴裁员 2000 人,具体补偿方案已出
查看>>
余生,做个不焦虑的程序员!
查看>>
世界排名第 3 的滴滴裁员,开春求职必知的独角兽排行榜
查看>>
Spring Boot 中的响应式编程和 WebFlux 入门
查看>>
如何从零开始两天撸一个微信小程序?!(内含源码)
查看>>
女神?御姐?文艺?这样的程序媛你绝没见过! | 程序员有话说
查看>>
“软件外包城”下的马鞍山 | 程序员有话说
查看>>
那些上相亲网站的程序员,后来怎么样了?
查看>>
程序员如何实现财富自由?
查看>>
你我的父母,都在被互联网“割韭菜”
查看>>
程序员下班后都忙些啥?| 程序员有话说
查看>>
万万没想到你们竟是这样的程序员 | 程序员有话说
查看>>
Java 帝国对 Python 的渗透能成功吗?
查看>>
从培训机构出来的程序员,后来都怎么样了? | 程序员有话说
查看>>
程序员写代码没激情该怎么破?
查看>>
我是如何从低端面畜到高端面霸的?
查看>>
百面机器学习!算法工程师面试宝典!| 码书
查看>>
苹果无人驾驶拿 124 个工程师祭天!
查看>>
漫画 | 一个前端渣渣的成功逆袭
查看>>
与吴恩达并肩战斗,她是 AI 界的女超人!|人物志
查看>>