springmvc 登录鉴权过滤器
来源:互联网 发布:淘宝女装6皇冠 编辑:程序博客网 时间:2024/05/05 09:56
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中配置
<filter> <filter-name>sessionFilter</filter-name> <filter-class>com.common.filter.SessionFilter</filter-class> </filter> <filter-mapping> <filter-name>sessionFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2 0
- springmvc 登录鉴权过滤器
- SpringMVC过滤器:登录过滤
- SpringMVC过滤器
- SpringMVC过滤器
- SpringMVC过滤器
- SpringMVC过滤器
- 登录过滤器
- 登录过滤器
- 登录过滤器
- 登录过滤器
- 登录过滤器
- IP过滤器与登录过滤器
- java 登录过滤器, 编码过滤器
- JavaWeb--Servlet过滤器Filter和SpringMVC的HandlerInterceptor(Session和Cookie登录认证)
- springmvc登录
- springmvc过滤器问题
- springmvc 过滤器问题 ,求解!
- SpringMVC之HiddenHttpMethodFilter 过滤器
- CSS页面布局基础1——盒模型
- 面向对象程序设计上机练习一(函数重载)
- 【UVA】1232 - SKYLINE(线段树减枝)
- Codeforces 164 E Compatible Numbers
- UVa 10382 - Watering Grass(贪心+区间覆盖问题)
- springmvc 登录鉴权过滤器
- 面向对象程序设计上机练习二(函数模板)
- java.lang.OutOfMemoryError: PermGen space异常
- Java BIO、NIO、AIO 学习
- CSS布局与定位练习
- 也谈BIO | NIO | AIO (Java版)
- Sublime Text设置及快捷键介绍
- Spring整合hibernate(3)之基于HibernateDaoSupport的整合
- 26岁的旅行