我正在学习 Spring 引导并创建一个简单的基于 Web 的项目,其中我使用 Spring 安全性的"记住我"功能创建了一个 cookie,但不知道如何使用该 cookie 来提取会话信息。
例如,在页面上显示此内容 - "hello {user}",用户从页面传递到页面。{user} 值应与其他信息一起来自 cookie。
我们可以这样走吗?如果是,如何从cookie中提取用户信息,或者是否有其他方法可以实现特定功能?
我试图对此进行搜索,但找不到具体的解决方案。
这是代码的一部分。
.rememberMe()
.alwaysRemember(true)
.tokenValiditySeconds(30)
.rememberMeCookieName("saurabh")
.key("somesecret");
已经在RememberMeAuthenticationFilter
内为您处理
该筛选器入,并执行以下操作
- 检查是否有任何可用信息
Authentication rememberMeAuth =
rememberMeServices.autoLogin(request, response);
- 如果有信息,则使身份验证管理器有机会拒绝它或正确验证用户
rememberMeAuth = authenticationManager.authenticate(rememberMeAuth);
- 将信息存储在安全上下文中(您现在已通过身份验证)
SecurityContextHolder.getContext().setAuthentication(rememberMeAuth);
- 调用无操作方法
onSuccessfulAuthentication(request, response, rememberMeAuth);
- 触发事件
eventPublisher.publishEvent(new InteractiveAuthenticationSuccessEvent(...));
- 最后,如果已配置,则触发成功处理程序
successHandler.onAuthenticationSuccess(request, response,
rememberMeAuth);
如果要截获此事件链,请在AuthenticationManager
中执行此操作。第 2 步,Spring 会将信息传递给您。