我正在使用 JHipster v4.5.5,并且正在研究https://jhipster.github.io/using-uaa/上的示例。我有两个试图通信的微服务。我使用以下注释保护了一种微服务方法:
@Secured({AuthoritiesConstants.USER, AuthoritiesConstants.ADMIN})
我尝试使用 AuthorizedFeignClients 从另一个微服务联系此服务:
@AuthorizedFeignClient(name = "MicroService2")
public interface MicroService2Client {
@RequestMapping(method = RequestMethod.GET, value = "/api/demo/string")
public String getString();
...
当我尝试时,我得到:
An unexpected error occurred: status 403 reading MicroService2Client#getString(); content: {"message":"error.accessDenied","description":"Access is denied","fieldErrors":null}
FeignClient 试图使用什么凭据/用户?它是在 jhipster.security.client-authorization 设置下的 application*.yml 中定义的“内部”客户端吗?
如果是这样,我应该在方法上使用哪些注释来允许该用户访问 REST 方法?
我希望使用用户帐户而不是尝试使用服务帐户。我在文档中看到一条注释:
作为替代方案,可以将初始请求的访问令牌转发给进一步的调用。目前,JHipster 没有提供“默认解决方案”。
你如何转发原始请求的访问令牌并转发它?
我在这里设置了一组演示项目: