Feign调用接口时,AuthUtil中获取不到用户

Blade 未结 3 564
420714167
420714167 2023-02-02 10:25

一、该问题的重现步骤是什么?

1. 请求Controller 方法

2. 在Controller请求Feign接口,在feign接口实现中通过AuthUtil获取用户信息

3.


二、你期待的结果是什么?实际看到的又是什么?

    在conrotler 调用feign接口时能够在feign中通过AuthUtil获取到用户信息


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

Blade cloud 3.0.1 windows


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

根据问题https://sns.bladex.cn/q-8019.html ,跟踪发现第一步controler中调用时设置的了header,在controler调用feign时

BladeServletRequestListener又进行了拦截此时从 this.httpHeadersGetter.get(request)获取到的header为空。导致
ThreadLocalUtil.put("bladeContext", httpHeaders);设置值为空了。

3条回答
  •  420714167
    420714167 (楼主)
    2023-02-02 10:32

    BladeServletRequestListener

    拦截了controller 设置了header ,但是调用feign的时候又拦截了 ,此时request中没有header,设置为空了。

提交回复