如何使用在springboot中使用spring安全性的RememberMe()功能创建的cookie?

时间:2019-01-16 18:57:59

标签: java spring-boot cookies spring-security

我正在学习Spring Boot并创建一个基于Web的简单项目,其中使用Spring安全性的“记住我”功能创建了一个cookie,但不知道如何使用该cookie来提取会话信息。

例如在页面上显示此内容-“ hello {user}”,用户在页面之间传递。 {user}值应与其他信息一起来自cookie。

我们可以这样走吗?如果是,如何从Cookie中提取用户信息,或者是否有其他方法可以实现特定功能?

我试图对此进行搜索,但找不到具体的解决方案。

这是代码的一部分。

public function broadcastAs()
{
    return 'server.created';
}

1 个答案:

答案 0 :(得分:0)

RememberMeAuthenticationFilter内的所有这些工作已经为您解决了

该过滤器被插入,并执行以下操作

  1. 检查是否有可用信息
Authentication rememberMeAuth = 
    rememberMeServices.autoLogin(request, response);
  1. 如果有信息,它将为身份验证管理器提供一个拒绝信息或正确验证用户身份的机会
rememberMeAuth = authenticationManager.authenticate(rememberMeAuth);
  1. 将信息存储在SecurityContext中(您现在已通过身份验证)
 SecurityContextHolder.getContext().setAuthentication(rememberMeAuth);
  1. 叫无操作法
 onSuccessfulAuthentication(request, response, rememberMeAuth);
  1. 触发事件
 eventPublisher.publishEvent(new InteractiveAuthenticationSuccessEvent(...));
  1. 最后,如果已配置,则触发成功处理程序
 successHandler.onAuthenticationSuccess(request, response,
                            rememberMeAuth);

如果您想拦截此事件链,请在AuthenticationManager中进行。步骤2,Spring将把信息传递给您。