首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Spring和@FeignClient发送Bearer授权令牌

如何使用Spring和@FeignClient发送Bearer授权令牌
EN

Stack Overflow用户
提问于 2018-05-08 15:53:37
回答 1查看 32.5K关注 0票数 11

我正在使用Spring编写一个与HTTP服务器交互的应用程序。我连接到的服务器之一(Wit.ai)使用贝勒授权令牌。生成成功响应的curl请求如下所示:

代码语言:javascript
复制
GET /message?q=sample message HTTP/1.1
Host: api.wit.ai
Authorization: Bearer XXXXXXXXXXXXX
Cache-Control: no-cache
Postman-Token: 526c3a11-8e61-4552-aa19-e913f6473753

wit.ai文档对令牌进行了如下说明,

Wit.ai使用OAuth2作为授权层。因此,每个API请求都必须包含一个带有令牌访问令牌的授权HTTP头,这些令牌都是特定于应用程序的。

我正在使用@FeignClient向Spring应用程序中的这个端点发送一个GET请求。然而,我这个端点似乎并不接受我的授权令牌。这是我的FeignClient代码

代码语言:javascript
复制
@FeignClient(name="witGetter", url = "${wit.url}")
    public interface WitGetter {
        @RequestMapping(method = RequestMethod.GET, value = "/message?v=20180507q={text}",
            headers = {"Authorization: Bearer XXXXXXXXXXXXX"})
        WitResponse getWitResponse(@PathVariable("text") final String text);
}

传递这样一个授权令牌的正确方法是什么?我试过其他几件事,但都没有用。谢谢你的建议!

顺便说一下,下面的代码使用传统的虚拟接口工作,但是在这种情况下,我需要使用@FeignClient。

代码语言:javascript
复制
public interface WitGetter {
    @Headers("Authorization: Bearer XXXXXXXXXXXXX")
    @RequestLine("GET /message?q={text}")
    WitResponse getWitResponse(@Param("text") String text);
}

(下面的代码位于单独的配置文件中)

代码语言:javascript
复制
@Bean
    public WitGetter defaultWitGetter(@Value("https://api.wit.ai") final String witUrl){
        return Feign.builder().decoder(new GsonDecoder()).target(WitGetter.class, witUrl);

}

编辑

使用上述代码时得到的错误代码是:

线程"main“feign.FeignException中的异常:状态400读取WitGetter#getWitResponse(字符串,字符串);内容:{”错误“:”错误,检查令牌/params“,”代码“:"no- auth”}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-08 20:01:46

当通过Spring使用假象时,您可以使用它,因为您将定义一个标准的Spring控制器。

请查看我在这里的文章,关于用假名传递标题:https://arnoldgalovics.com/passing-headers-with-spring-cloud-feign/

快速提示:您可以向方法定义添加一个@RequestHeader("Authorization") String bearerToken参数。

当然,就像client.method(..., "Bearer " + token)一样

票数 22
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50237709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档