1. 程式人生 > 實用技巧 >session衝突問題產生的原因和解決方法

session衝突問題產生的原因和解決方法

問題:

  在本地專案中,同一個瀏覽器。前臺使用者登入後,後臺管理員一登陸就更改了session的(JSESSIONID)cookie。由於管理員登入的時候把session改了,前臺登入就被踢下去。前臺登入後,後臺有被踢下去。

原因:

  前臺和後臺的session都是以JSESSIONID為名,然後修改了。

解決:

  1.用兩個瀏覽器訪問專案,一個瀏覽器登入前臺,一個瀏覽器登入後臺;

  2.在yml檔案中將JSESSIONID名字修改成blog_web

server:
servlet:
session:
cookie:
name: blog_web

  3.如果專案中有Shiro框架,在ShiroConfig中修改為ShiroSession

/**
*cookie物件;修改預設的cookie名字:JSESSIONID
* @return
*/
@Bean("sessionIdCookie")
public SimpleCookie sessionIdCookie(){
//這個引數是cookie的名稱
SimpleCookie simpleCookie = new SimpleCookie("ShiroSession");
//setcookie的httponly屬性如果設為true的話,會增加對xss防護的安全係數。它有以下特點:

//setcookie()的第七個引數
//設為true後,只能通過http訪問,javascript無法訪問
//防止xss讀取cookie
simpleCookie.setHttpOnly(true);
//maxAge=-1表示瀏覽器關閉時失效此Cookie
simpleCookie.setMaxAge(-1);
return simpleCookie;
}