如何在春季安全中取消cookie?

时间:2011-12-13 14:53:00

标签: java cookies spring-security basic-authentication

我正在使用spring security进行身份验证,如果我有2台服务器(server1,server2)使用相同的文件战。

用户A 服务器1 中登录,在persistent_logins表上保存数据。如果用户A 服务器2 上刷新,则会自动记录。这是正确的,但是如果u * ser A(server1) *进行注销,则删除表persistent_logins的数据,并在刷新时删除用户A(服务器2),仍然连接。

我可以对用户做什么 A(服务器2)更改为退出模式?

感谢

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)

用户注销时,最简单的解决方案更新两台服务器上的数据