【问题标题】:Feign Oauth how to manually set the bearer token value?Feign Oauth如何手动设置不记名令牌值?
【发布时间】:2017-08-30 15:09:01
【问题描述】:

我正在开发一个 Rest API,MyApi。 在那里,我使用 Feign(和 swagger codegen)为另一个 API 生成客户端,我们称之为 Ext-API。

用户之前已经调用过 Ext-API 并且除其他外将检索到 JWT 令牌。 然后,他将使用 Basic Auth 调用我的 API,并在正文中为我提供 JWT 令牌。

我将使用这个 JWT 令牌作为 auth 标头从我的 API 连接到 Ext-API 并代表用户执行更多操作。

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

我找不到如何在每次请求时更新 Oauth 令牌。 假装没有任何东西可以做到这一点。 Atm 我正在使用常规的 Rest 模板。

【问题讨论】:

    标签: oauth swagger-codegen feign


    【解决方案1】:

    你可以在feign Client中使用@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);
    }
    

    从你的程序中你可以将令牌传递给 feign 客户端

    【讨论】:

    • 谢谢,这会奏效。但是我使用 Maven codegen 和 feign 来生成客户端,因此我无法编辑 WS 方法在接口中声明的方式以添加额外的标头。我正在寻找一种注入请求特定标头的方法。
    • 看到有一个关于此问题的问题:github.com/OpenFeign/feign/issues/214
    猜你喜欢
    • 2017-04-09
    • 1970-01-01
    • 2023-03-05
    • 2017-02-14
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-27
    • 2021-03-15
    相关资源
    最近更新 更多