解决:Feign令牌中继问题:feign.FeignException$Unauthorized:[401] during [GET] toxxx

在使用OAuth2的时候碰到的两个问题:

问题1

首先,不引入JWT的时候,为了单点登录,我们使用携带Token的方式去请求资源服务。但是我们的微服务是需要进行原程调用的,这时就会发现使用了Feign进行远程调用的服务报错了。正如标题所报的那样,因为就算我们携带了token去访问了该服务,但是由于远程调用的时候并没有携带token去请求对应的资源,导致请求失败了。解决的方法也简单,引入配置就行。

feign:
  oauth2:
    enabled: true
    load-balanced: true


问题2

引入了JWT之后,我发现使用了Feign的服务又不行了。后来各种搜索才发现,还是跟上面一样的问题。这里详细内容推荐查看: 跳转

我这边给出解决办法。

 首先在对应服务里面编写一个配置类,这个类实现RequestInterceptor接口。

class BearerTokenRequestInterceptor implements RequestInterceptor {
    private static final Pattern BEARER_TOKEN_HEADER_PATTERN = Pattern.compile("^Bearer (?<token>[a-zA-Z0-9-._~+/]+=*)$",
            Pattern.CASE_INSENSITIVE);//按照JWT的格式要求做匹配

    @Override
    public void apply(RequestTemplate template) {
        final String authoriza
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值