session会话更新
来源:互联网 发布:星际淘宝网下载 编辑:程序博客网 时间:2024/05/01 11:56
安全检测会在登录前后检测登录session,没更新会提示。
解决方法:设置一个过滤器,指定到登录的url,每登录一次就更新下session.
filter的代码如下,记得在web.xml配置一个过滤的url
import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.*;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import java.io.IOException;import java.util.Enumeration;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/** * Created by zhourj on 2015/11/23. * explain:登录时更新会话标识符(JSESSIONID) */public class NewSessionFilter implements Filter { private String url; private static final Logger logger = LoggerFactory.getLogger(NewSessionFilter.class); @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { System.out.println("NewSessionFilter doFilter"); if (request instanceof HttpServletRequest) { HttpServletRequest httpRequest = (HttpServletRequest) request; //取的url相对地址 String url = httpRequest.getRequestURI(); System.out.println(url); if (httpRequest.getSession() != null) { System.out.println("NewSessionFilter doFilter httpRequest.getSession().getId()"+ httpRequest.getSession().getId()); //--------复制 session到临时变量 HttpSession session = httpRequest.getSession(); HashMap old = new HashMap(); Enumeration keys = session.getAttributeNames(); while (keys.hasMoreElements()){ String key = (String) keys.nextElement(); old.put(key, session.getAttribute(key)); session.removeAttribute(key); } if (httpRequest.getMethod().equals("POST") && httpRequest.getSession() != null && !httpRequest.getSession().isNew() && httpRequest.getRequestURI().endsWith(url)){ session.invalidate(); session=httpRequest.getSession(true); logger.debug("new Session:" + session.getId()); } //-----------------复制session for (Iterator it = old.entrySet().iterator(); it.hasNext();) { Map.Entry entry = (Map.Entry) it.next(); session.setAttribute((String) entry.getKey(), entry.getValue()); } } } chain.doFilter(request, response); System.out.println("NewSessionFilter doFilter end"); } @Override public void destroy() { }}
1 0
- session会话更新
- session会话
- Session会话
- Session 会话
- Session 会话
- Session 会话
- Session 会话
- Session 会话
- Session-会话
- session会话
- session(会话)
- Session 会话
- 会话 session
- 会话更新
- PHP 会话 (php Session)
- 什么是会话session?
- 浅谈session会话跟踪
- 会话 (session)
- 编译安装lamp
- ios实时播放PCM数据
- socket编程
- LINK:fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
- 16进制颜色码对照表
- session会话更新
- 修改textfield的左右视图的位置。
- 完全背包
- 图形处理(十一)Stroke Parameterization
- php学习之基本语法
- popwindow 设置动画
- 五角大楼如何测试他们的飞机有多耐冻
- 图形处理(十二)拉普拉斯网格优化、最小二乘网格模型光顺
- iOS-OC-APP后台持续运行