补充问题
feign调用、分布式事务的情况,要通过传参方式传递userId,然后实现类获取userId再从库或者缓存获取用户数据。不要用AuthUtil获取因为会有其他的依赖也实现了feign接口导致请求头传递失效
上面的回答不完整, 我这里贴下修改后的代码. 您这边看下是否会对bladex-tool产生影响.
org.springblade.core.cloud.sentinel.BladeSentinelAutoConfiguration配置类中:
@Bean
@ConditionalOnMissingBean
public BladeFeignRequestInterceptor requestInterceptor() {
return new BladeFeignRequestInterceptor();
}
上面回答的也不完整,你找到了位置,但是没说出来问题所在
BladeSentinelAutoConfiguration.java中修改下下面的代码即可。原因:开启了seata,seata中有个feign的Interceptor和BladeFeignRequestInterceptor实现了同一个接口,下面代码生成对象时就用了seata的那个了,不会走下面的方法了,固feign调用时请求头传递不过去了
@Bean
@ConditionalOnMissingBean(name = "bladeFeignRequestInterceptor")
public RequestInterceptor requestInterceptor() {
return new BladeFeignRequestInterceptor();
}
楼主,采纳吧,这个问题,我一点点debug,找了一天才找到问题所在。
扫一扫访问 Blade技术社区 移动端