【发布时间】:2019-01-12 14:45:28
【问题描述】:
我已经使用 spring 5 构建了一个 Spring boot oauth2 服务器。oauth 服务器工作,我可以使用基本身份验证和用户名/密码登录。我得到一个不记名令牌,我可以使用 /oauth/check_token url 验证令牌。
在同一个 Spring boot 项目中,我想添加一个端点,该端点将打印出经过身份验证的用户信息,以便 oauth2 客户端可以通过登录用户获取信息。我创建了一个端点 /user,它看起来像这样:
@GetMapping("/user")
@ResponseBody
public Principal user(Principal user) {
return user;
}
我启动邮递员,以便我可以进行 api 调用等,调用 /oauth/token 并收到一个令牌。然后我开始一个新的请求,将身份验证方法设置为不记名令牌并填写接收到的不记名令牌。我对 url (http://localhost:8080/user) 进行了 GET 调用,结果发现主体始终为空。我知道,因为我可以在 Spring 工具套件中调试我的应用程序,而 Principal 始终为空。我也试过:
OAuth2Authentication oAuth2Authentication = (OAuth2Authentication)SecurityContextHolder.getContext() .getAuthentication();
那也是空的。如何创建将打印用户信息的端点,以便客户端可以设置 userInfoUri 属性。
【问题讨论】:
-
您能否将完整的请求详细信息分享给 /users。
标签: spring spring-boot oauth-2.0