【问题标题】:Manually set spring security auth remember me手动设置spring security auth记住我
【发布时间】: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());

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

【问题讨论】:

  • 你为什么要这么做?

标签: spring-security


【解决方案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

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

【讨论】:

  • 记住我的参数现在是“记住我”,仅供参考。
猜你喜欢
  • 2015-05-10
  • 2012-01-21
  • 2014-09-04
  • 2018-12-02
  • 2015-11-11
  • 2013-04-09
  • 2014-10-04
  • 2017-11-15
  • 2012-03-13
相关资源
最近更新 更多