手动设置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:未调用自定义 UserDetailsService(使用 Auth0 身份验证)
使用spring security的auth api调用的cors错误