手动设置spring security auth记住我

Posted

技术标签:

【中文标题】手动设置spring security auth记住我【英文标题】:Manually set spring security auth remember me 【发布时间】:2015-06-12 19:53:57 【问题描述】:

在实现应用登录时,我想使用spring security来设置谁登录,但是如何设置记住?我的 UserLogin 喜欢这个。

UserDetails usDetails userDetails.loadUserByUsername(u.getAccount());鉴权鉴权 = new UsernamePasswordAuthenticationToken( usDetails, usDetails.getPassword(), usDetails.getAuthorities()); SecurityContextHolder.getContext().setAuthentication(authentication); HttpSession 会话 = request.getSession(true); session.setAttribute("SPRING_SECURITY_CONTEXT",SecurityContextHolder.getContext());

但是我该如何设置记住呢?

【问题讨论】:

你为什么要这么做? 【参考方案1】:

您的类应该连接到您的应用程序中使用的RememberMeServices bean。

上面列出的身份验证代码执行后,您应该调用以下代码:

rememberMeServices.loginSuccess(request, response, authentication);

传递给方法的请求必须将记住我参数(默认_spring_security_remember_me)设置为true,因为调用会检查请求以确保指示记住我。

RememberMeServices 文档:http://docs.spring.io/autorepo/docs/spring-security/3.2.2.RELEASE/apidocs/org/springframework/security/web/authentication/RememberMeServices.html

AbstractRememberMeServices 来源:https://github.com/spring-projects/spring-security/blob/master/web/src/main/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServices.java

实际的实现类取决于您在应用程序中实现/指示的记住我的类型。

【讨论】:

记住我的参数现在是“记住我”,仅供参考。

以上是关于手动设置spring security auth记住我的主要内容,如果未能解决你的问题,请参考以下文章

使用 REST 和 Javaconfig 在 Spring Security 中摘要 Auth

Spring Security:未调用自定义 UserDetailsS​​ervice(使用 Auth0 身份验证)

使用spring security的auth api调用的cors错误

使用Spring Security进行auth api调用时出现Cros错误

验证 Auth0 令牌 - Spring Security

Spring Security:配置(AuthenticationManagerBuilder auth)