-
Choerodon平台版本:0.5.0
-
运行环境(如localhost或k8s):localhost
-
遇到问题时的前置条件:
-
问题描述:
在使用feign进行调用的时候,在调用方看用户信息是正确的,但被调用方获取到的用户信息就不对。。。
接口在swagger调用的时候是正常的,哪位大佬能说下会是什么原因导致的,是不是哪里配置的问题。。
Choerodon平台版本:0.5.0
运行环境(如localhost或k8s):localhost
遇到问题时的前置条件:
问题描述:
在使用feign进行调用的时候,在调用方看用户信息是正确的,但被调用方获取到的用户信息就不对。。。
接口在swagger调用的时候是正常的,哪位大佬能说下会是什么原因导致的,是不是哪里配置的问题。。
查看下pom 里面有没有引入choerodon-starter-feign-replay
的依赖
有的
choerodon-starter-feign-replay
是在调用方这边引入的。
如果引用了,debug 一下 DetailsHelper.getUserDetails
,看看和这里有没有区别。
我们feign是无法传递用户信息的,传的是一个匿名用户信息。因为我们的API分为两种,一种是外部接口,经过网关访问可以获取正确用户信息,另一种是服务间内部调用接口,无法获取用户信息,只验证请求是否合法。我们暂时是这样的,如果现在必须要传递用户信息,可以修改被调用接口,把用户id传给它
我们框架并没有提供任何feign传递用户信息的方法。可以试下参照FeignRequestInterceptor,将调用端DetailsHelper.getUserDetails()获取到的userDetail加密生成JWT,feign请求时加上@RequestHeader(“Jwt_Token”)传递过去
测试发现,服务调用的时候,调用方开启熔断器就会导致获取不到用户信息,有什么比较好的解决方法吗?