用户注册成功后,我试图将用户重定向到登录页面后并尝试从 SecurityContextHolder.getContext().getAuthentication(); 这是返回null。
这是用户成功注册后我设置上下文的方式
UsernamePasswordAuthenticationToken authenticatedUser = new UsernamePasswordAuthenticationToken(userDetails.getUsername(), userDetails.getPassword(), userDetails.getAuthorities());
authenticatedUser.setDetails(userDetails);
if(authenticatedUser.isAuthenticated()) {
SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
}
然后我使用 response.sendRedirect(url); 将用户重定向到 x 页面;
在控制器方法中,我试图将当前用户作为
@RequestMapping("/<pattern>")
public @ResponseBody <method_name>(HttpServletRequest req,HttpServletResponse resp){
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
if(auth==null){
System.out.println("this is null");
}
else{
// do something
}
}
我在控制台中看到文本为“这是空的”。
如何在整个用户期间从 SecurityContext() 中保留当前用户/主体,直到用户注销。