Spring Security不会保存身份验证

时间:2016-03-04 19:48:29

标签: spring-mvc authentication spring-security spring-restcontroller

我遇到以下问题: 我想访问SecurityContextHolder.getContext().getAuthentication

中的Authentication对象

我用来保存用户身份验证的代码如下:     SecurityContextHolder.getContext().setAuthentication(new UsernamePasswordAuthenticationToken(username, password));

我如何使用它如下;

我使用localhost:8080/api/login/<username>/<password>

发送请求

之后我想使用localhost:8080/api/messages

检索登录用户的消息列表

当我打印出Authentication对象时,它总是返回一个匿名用户,尽管我在我的登录方法中设置了Authentication对象。

1 个答案:

答案 0 :(得分:1)

如果您想手动验证用户,请执行以下操作:

创建令牌:

Authentication authentication = new UsernamePasswordAuthenticationToken(user, user.getPassword(), user.getAuthorities());

身份验证:

SecurityContextHolder.getContext().setAuthentication(authentication);