在实施应用登录时,我想使用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());
但我怎样才能记住?
答案 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
实际的实现类取决于您在应用程序中实现/指示的记忆类型。