不管我做什么我都无法登出去工作。我有一个只有通过成员角色才能看到的菜单。我已经尝试了会话的无效,以及通过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。不要手动实现注销逻辑(会话失效等)。请参阅*拉尔夫的*答案... –