我遇到以下问题:
我想访问SecurityContextHolder.getContext().getAuthentication
我用来保存用户身份验证的代码如下:
SecurityContextHolder.getContext().setAuthentication(new UsernamePasswordAuthenticationToken(username, password));
我如何使用它如下;
我使用localhost:8080/api/login/<username>/<password>
之后我想使用localhost:8080/api/messages
当我打印出Authentication对象时,它总是返回一个匿名用户,尽管我在我的登录方法中设置了Authentication对象。
答案 0 :(得分:1)
如果您想手动验证用户,请执行以下操作:
创建令牌:
Authentication authentication = new UsernamePasswordAuthenticationToken(user, user.getPassword(), user.getAuthorities());
身份验证:
SecurityContextHolder.getContext().setAuthentication(authentication);