我正在使用spring security进行身份验证,如果我有2台服务器(server1,server2)使用相同的文件战。
用户A 在服务器1 中登录,在persistent_logins表上保存数据。如果用户A 在服务器2 上刷新,则会自动记录。这是正确的,但是如果u * ser A(server1) *进行注销,则删除表persistent_logins的数据,并在刷新时删除用户A(服务器2),仍然连接。我可以对用户做什么 A(服务器2)更改为退出模式?
感谢
答案 0 :(得分:2)
如果您知道如何捕捉需要进行user_A注销的时刻,您可以考虑使用过滤器并清除当前会话。
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// skip non-http requests
if (!(request instanceof HttpServletRequest)) {
chain.doFilter(request, response);
return;
}
HttpServletRequest httpRequest = (HttpServletRequest) request;
httpRequest.getSession().invalidate();
...
如果您需要使用spring注入一些bean,可以查看DelegatingFilterProxy
答案 1 :(得分:1)
用户注销时,最简单的解决方案更新两台服务器上的数据