如何完全退出?我有我的xml文件:
<security:logout logout-url="/logoutMe" />
当我输入/ logoutMe url时,我没有注销 - 在我的控制器上我添加了:
SecurityContextHolder.getContext().getAuthentication().getName()
并将名称添加到ModelAndView并显示在我的页面上,并且仍有我的用户名,而不是登录前的匿名用户。
如何完全退出? 我还试图用:
创建我自己的LogoutSuccessHandler实现SecurityContextHolder.clearContext();
但是..它似乎无法正常工作
答案 0 :(得分:0)
这可能是Spring安全性在注销时调用的方法(来自SecurityContextLogoutHandler类):
public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
Assert.notNull(request, "HttpServletRequest required");
if (invalidateHttpSession) {
HttpSession session = request.getSession(false);
if (session != null) {
logger.debug("Invalidating session: " + session.getId());
session.invalidate();
}
}
if(clearAuthentication) {
SecurityContext context = SecurityContextHolder.getContext();
context.setAuthentication(null);
}
SecurityContextHolder.clearContext();
}
您是否尝试使用默认值,由spring security logout url /logout
提供?或者你必须定制一些东西?