我一直在编写一个只为每个用户创建一个会话的Web应用程序。到目前为止,这一点运作良好。但是,我遇到了一个问题,如果我有用户注销,Spring认为用户仍然登录。我在注销时使用acegi使会话无效,但似乎Spring没有认识到:
<security:logout invalidate-session="true"
success-handler-ref="logout"
logout-url="/logout.html" />
所以,我的问题是:是否存在一个我必须无效的单独的春季会议,如果是这样的话,我应该怎么做呢?
提前致谢。 MirroredFate
答案 0 :(得分:2)
如果您在询问Acegi和SpringMVC是否使用相同的会话,那么答案是肯定的,他们会这样做。您可能希望手动使处理/logout.html
的控制器中的会话无效。
<强>更新强>
正如OP在下面的评论中提到的那样,要使身份验证对象无效:
SecurityContextHolder.getContext().setAuthentication(null);