定义filter对session过期用户重新登录
来源:互联网 发布:市场机会分析矩阵 编辑:程序博客网 时间:2024/06/05 12:39
一、在web.xml中自定义securityFilter,设置跳转页面、需过滤的url相关参数
<filter><filter-name>securityFilter</filter-name><filter-class>com.sasis.webapp.filter.UserFilter</filter-class><init-param><param-name>errorPath</param-name><param-value>./nouUserSession.jsp</param-value></init-param></filter><filter-mapping><filter-name>securityFilter</filter-name><url-pattern>*.html</url-pattern></filter-mapping><filter-mapping><filter-name>securityFilter</filter-name><url-pattern>*.shtml</url-pattern></filter-mapping>
二、UserFilter.java处理session过期用户跳转逻辑
package com.sasis.webapp.filter;import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import uk.ltd.getahead.dwr.WebContextFactory;import com.sasis.Constants;import com.sasis.model.CurrentUser;import com.sasis.model.User;public class UserFilter implements Filter {private static final Log log = LogFactory.getLog(UserFilter.class);private String errorUrl;public void init(FilterConfig filterConfig) throws ServletException {errorUrl = filterConfig.getInitParameter("errorPath");log.debug("--------------------------errorUrl______");log.debug(errorUrl);log.debug("--------------------------errorUrl______");}public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException {try {HttpServletRequest httpRequest = (HttpServletRequest) request;HttpServletResponse httpResponse = (HttpServletResponse) response;HttpSession session = httpRequest.getSession();User user = (User)session.getAttribute("user");log.debug(">>>>>>>>>>>>user>>>>>>>>>>>>"+user);//if(null!=user)CurrentUser.set((User)session.getAttribute("user"));CurrentUser.set(user); String isLogin = (String) session.getAttribute(Constants.CURUSER_KEY); boolean UrlNotvalidated = false;String resourceURL = httpRequest.getRequestURL().toString(); String queryString = httpRequest.getQueryString(); String[] actionStrArray = resourceURL.split("/");//if ("activityChangeMsg.html".equalsIgnoreCase(actionStrArray[actionStrArray.length -1])){UrlNotvalidated = true;//} String referer = httpRequest.getHeader("referer"); if (null != referer || UrlNotvalidated){ if (session == null || !"true".equals(isLogin)) {// System.out.println(request.getParameter("method")); if(null != request.getParameter("method") && request.getParameter("method").startsWith("psg")){ filterChain.doFilter(request, response); }else{ httpRequest.setAttribute("notUserSession","Y"); httpResponse.sendRedirect(errorUrl); } } else { filterChain.doFilter(request, response); } } else {httpResponse.sendRedirect(errorUrl); }} catch (Exception ex) {log.error(ex);ex.printStackTrace();}}public void destroy() {}}
1 0
- 定义filter对session过期用户重新登录
- flex(替代session过期)用户长时间不操作要求重新登录的处理
- flex(替代session过期)用户长时间不操作要求重新登录的处理
- 使用filter使session失效的用户,重新跳转到登录页面
- session过期,处理ajax请求,使其重新登录
- 处理session过期(401)身份过期用户重新登陆的方法之重写ajax
- filter对没有登录的用户过虑
- 利用Filter对用户登录进行拦截
- 过滤器(当前登录人的信息(session过期时)进行重新登录)
- 使用cookie,session,filter等技术实现用户自动登录
- Filter 对未登录用户访问地址的控制
- session失效后重新登录
- springmvc session丢失 重新登录
- 防止重复登录和session过期
- session过期之后 登录页跳出ifame
- 防止重复登录和session过期
- ecshop登录超时、session过期的解决办法
- Android处理登录的session过期
- Eclipse中快捷键Ctrl + Alt + 向下箭头与Windows冲突解决
- 4家外国支持支付宝支付的域名注册商
- 湖南集训 & HNOI2016 总结
- java.lang.NoClassDefFoundError: javax transaction SystemException 解决方法!
- Sitemesh 3 的使用及配置
- 定义filter对session过期用户重新登录
- android 系统自带的图标集合
- lsof查看文件描述符的offset
- Android开源框架——网络解析GSON
- Xcode真机测试could not find developer disk image解决方法(支持iOS9.2)
- libConfuse使用
- ASP.NET提示框,且根据用户选择执行不同代码的实现
- ExtJS下页面显示中文乱码问题
- test1