新用户提交“新帐户”表单后,我想手动登录该用户,这样他们就不必登录后续页面。
通过 Spring 安全拦截器的普通表单登录页面工作得很好。
在 new-account-form 控制器中,我创建了一个 UsernamePasswordAuthenticationToken,并在 SecurityContext 中手动设置它:
SecurityContextHolder.getContext().setAuthentication(authentication);
在同一个页面上,我稍后检查用户是否用以下方式登录:
SecurityContextHolder.getContext().getAuthentication().getAuthorities();
这将返回我在前面的身份验证中设置的权限。
但是,当在我加载的下一个页面上调用相同的代码时,身份验证令牌只是 UserAnonymous。
我不清楚为什么它没有保留我在前一个请求上设置的身份验证。有什么想法吗?
我只是在找一些想法也许能帮我弄清楚这里发生了什么。