zoukankan      html  css  js  c++  java
  • java web 登录后更新JSESSIONID

    https://huangqiqing123.iteye.com/blog/2031455

    登录前的请求一般都是http的,http是不安全的,假设用户登录前的JSESSIONID被人取得,如果登录后不变更JSESSIONID的话,即使登录请求是https的,该用户仍然会被他人冒充。

    javaweb程序强制更新JSESSIONID的方法

    Java代码  收藏代码
    1. /** 
    2.  * 重置sessionid,原session中的数据自动转存到新session中 
    3.  * @param request 
    4.  */  
    5. public static void reGenerateSessionId(HttpServletRequest request){  
    6.       
    7.     HttpSession session = request.getSession();  
    8.       
    9.     //首先将原session中的数据转移至一临时map中  
    10.     Map<String,Object> tempMap = new HashMap();  
    11.     Enumeration<String> sessionNames = session.getAttributeNames();  
    12.     while(sessionNames.hasMoreElements()){  
    13.         String sessionName = sessionNames.nextElement();  
    14.         tempMap.put(sessionName, session.getAttribute(sessionName));  
    15.     }  
    16.       
    17.     //注销原session,为的是重置sessionId  
    18.     session.invalidate();  
    19.       
    20.     //将临时map中的数据转移至新session  
    21.     session = request.getSession();  
    22.     for(Map.Entry<String, Object> entry : tempMap.entrySet()){  
    23.         session.setAttribute(entry.getKey(), entry.getValue());  
    24.     }  
    25. }  

    php重置sessionid的方式参见:http://huangqiqing123.iteye.com/blog/1891051

  • 相关阅读:
    备忘录模式(java)
    06
    观察者模式(java)
    迭代器模式(c++)
    06
    07
    2021.11.21(迭代器模式c++)
    2021.11.24(状态模式java)
    2021.11.22(hive安装)
    2021.11.23(MYSQL安装)
  • 原文地址:https://www.cnblogs.com/linus-tan/p/10724120.html
Copyright © 2011-2022 走看看