2017-08-30 50 views
0

我正在开发Rest API,MyApi。 在那里,我使用Feign(和swagger codegen)为另一个API生成客户端,我们称之为Ext-API。Feign Oauth如何手动设置持票人令牌值?

用户之前会调用Ext-API,并且还会检索JWT令牌。 然后,他会使用Basic Auth调用我的API,并在主体中为我提供JWT令牌。

我想使用此JWT令牌作为auth头从我的API连接到Ext-API,并代表用户做更多的事情。

但是,Oauth的所有示例& Feign示例依赖于Oauth也用于使用生成的客户端连接到API。

我无法根据每次请求找到更新Oauth Token的方法。 假装没有暴露这样做。 Atm我正在使用常规的Rest模板。

回答

1

您可以假死的客户使用@RequestHeader,见下文

@FeignClient(name = "<name>", configuration = <configclass>) 
public interface Client { 

    public final String AUTH_TOKEN = "Authorization"; 

    @RequestMapping(method = RequestMethod.GET, value = "users", produces = "application/json") 
    public HttpEntity<List<User>> getUsers(@RequestHeader(AUTH_TOKEN) String oruToken, 
      @RequestParam("<param>") Integer value); 
} 

,并从你的程序,你可以通过令牌假装客户

+0

感谢,将工作。 但是我使用Maven codegen和feign来生成客户端,因此我无法编辑WS方法在界面中声明的方式来添加额外的头文件。 我正在寻找一种方法来注入请求特定的头。 – TheBakker

+0

看了一段时间以来一直在打开的问题:https://github.com/OpenFeign/feign/issues/214 – TheBakker