手动设置spring security auth记住我

时间:2015-04-08 02:20:55

标签: spring-security

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

UserDetails usDetails userDetails.loadUserByUsername(u.getAccount());身份验证身份验证=新UsernamePasswordAuthenticationToken(
            usDetails,usDetails.getPassword(),usDetails.getAuthorities());
。SecurityContextHolder.getContext()setAuthentication(认证); HttpSession session = request.getSession(true); session.setAttribute(" SPRING_SECURITY_CONTEXT",SecurityContextHolder.getContext());

但我怎样才能记住?

1 个答案:

答案 0 :(得分:1)

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

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

rememberMeServices.loginSuccess(request, response, authentication);

传入方法的请求必须将remember me参数(默认_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

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