2017-08-30 116 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