【发布时间】:2019-02-02 04:44:38
【问题描述】:
我正在开发一个包含 3 个较小项目的系统,具体如下:
- 一个客户
- 资源服务器
- 身份验证服务器
认证服务器有一个注册页面和一个登录页面。资源服务器由认证服务器保护。
我想从客户端通过 REST API 访问资源。客户端通过 OAuth2RestTemplate 从 Spring 调用资源服务器以访问资源。在我对自己进行身份验证后,我设法访问了该资源。
现在解决问题。在客户端,我需要知道当前用户以显示用户名并允许用户更改他的个人资料。
我尝试使用
通过 spring security 访问用户的主体Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
但它只是返回了null。
所以我的问题是:有没有办法让当前登录的用户使用OAuth2RestTemplate?
编辑:
所以我决定改变计划,在我的身份验证服务器中实现一个链接,该链接返回用户信息。问题是,当我想通过OAuth2RestTemplate与身份验证服务器通话时,身份验证服务器只返回登录页面。当我从浏览器调用页面或想通过OAuth2RestTemplate 与资源服务器交谈时,一切正常。
【问题讨论】:
标签: java spring oauth oauth-2.0 spring-oauth2