不管我做什麼我都無法登出去工作。我有一個只有通過成員角色才能看到的菜單。我已經嘗試了會話的無效,以及通過Spring文檔的/ j_spring_security_logout ...都轉發到主頁,但菜單和憑證出現在主頁上。因此註銷不起作用。這是我的Spring Security.xml文件條目。通過Spring註銷3安全
<logout logout-url="/logout"/>
<logout logout-url="/j_spring_security_logout" logout-success-url="/home"
delete-cookies="JSESSIONID" invalidate-session="true"/>
正如你所看到的我已經嘗試了兩種。這裏是註銷控制器。
@RequestMapping(value = "/logout", method=RequestMethod.GET)
public String logout(HttpServletRequest request, HttpServletResponse response) {
logger.info("Logging out!");
response.setHeader("pragma", "no-cache");
response.setHeader("Cache-control", "no-cache, no-store, must-revalidate");
response.setHeader("Expires", "0");
Cookie jSessionCookie = new Cookie("JSESSIONID", null);
jSessionCookie.setMaxAge(0);
response.addCookie(jSessionCookie);
Cookie activityIdCookie = new Cookie("activityId", null);
activityIdCookie.setMaxAge(0);
response.addCookie(activityIdCookie);
request.getSession().invalidate(); //Attempt to logout user.
return ("redirect://");
}
任何幫助,非常感謝。
*註銷*由安全篩選器鏈處理(就像Spring Security中的幾乎所有)。實際的*註銷*請求將永遠不會將其發送給調度程序servlet。不要手動實現註銷邏輯(會話失效等)。請參閱*拉爾夫的*答案... –