如何在 Spring Security 中取消 cookie?
Posted
技术标签:
【中文标题】如何在 Spring Security 中取消 cookie?【英文标题】:How cancel a cookie in spring security? 【发布时间】:2012-01-19 10:38:58 【问题描述】:我正在使用 spring security 进行身份验证,如果我有 2 个服务器(server1、server2)使用相同的文件战争。
用户 A 在 server 1 上登录,将数据保存在 persistent_logins 表中。如果 用户 A 在 server 2 上进行刷新,则会自动记录。这是正确的,但是如果 u*ser A (server1)* 注销,则删除 table persistent_logins 的数据并且 user A(server 2) 进行刷新时,仍然连接。
我可以对用户 A(server 2) 做什么更改为注销模式?
谢谢
【问题讨论】:
【参考方案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 中声明它。实际上就是这样。 类似于我对***.com/questions/8478188/…的回答以上是关于如何在 Spring Security 中取消 cookie?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Javascript 中使用 Spring Security 用户名
Spring security:Spring security 如何在 SessionRegistry 中注册新会话?
漫谈Spring Security 在Spring Boot 2.x endpoints中的应用
如何在 spring-security 5.2 中增加 RemoteJWKSet 缓存 TTL