【问题标题】:How cancel a cookie in spring security?如何在 Spring Security 中取消 cookie?
【发布时间】:2012-01-19 10:38:58
【问题描述】:

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

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

我可以对用户 A(server 2) 做什么更改为注销模式?

谢谢

【问题讨论】:

    标签: java cookies spring-security basic-authentication


    【解决方案1】:

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

    【讨论】:

      【解决方案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

      【讨论】:

      • 你能更好地解释一下我能做什么吗?我是春天的新手
      • 当然。创建一个实现过滤器接口的类。在您的 web.xml 中声明它。实际上就是这样。
      • 类似于我对stackoverflow.com/questions/8478188/…的回答
      猜你喜欢
      • 2019-06-24
      • 2013-12-19
      • 2012-12-19
      • 2013-05-20
      • 2018-07-04
      • 2018-04-26
      • 2018-01-22
      • 2016-02-11
      • 2013-04-07
      相关资源
      最近更新 更多