gpt4 book ai didi

cookies - 如何使用基于 Spring Security 持久 token 的 RememberMe 服务以编程方式注销

转载 作者:行者123 更新时间:2023-12-02 21:27:21 25 4
gpt4 key购买 nike

我在我的项目中使用 Spring Data REST 和 Spring Security。 AM 使用 Spring security 的基于持久 token 的 Remember Me 服务来记住登录的用户,我试图以编程方式使 session 无效并从存储库和 cookie 中删除请求的数据。我已经尝试了以下代码,但仅适用于该请求,并且如果提出另一个请求,则再次进行身份验证。如何在 session 失效后从数据库和浏览器中删除 cookie。

Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if (auth != null){
new SecurityContextLogoutHandler().logout(request, response, auth);
new PersistentTokenBasedRememberMeServices().logout(request, response, auth);
}
SecurityContextHolder.getContext().setAuthentication(null);

是否可以使使用 Spring Security 的 PersistentTokenBasedRememberme 服务的 session 失效并删除?我需要使用什么额外的东西来删除 cookie 或者其他吗?

最佳答案

您需要依赖注入(inject)rememberMeServices。这应该有效:

def rememberMeServices

def yourAction(){

SecurityContextHolder.clearContext(); //invalidates auth
rememberMeServices.logout(request, response, null) // removes rememberMe cookie

}

关于cookies - 如何使用基于 Spring Security 持久 token 的 RememberMe 服务以编程方式注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25270993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com