启用 Hystrix 后 OpenFeign 无法传递 Header

来源:15-4 远程服务调用 Feign 接口定义及配置(1)

shiroazu

2022-04-08

启用 Hystrix 后,远程调用会通过 Hystrix 的线程池发起,但在子线程中无法通过 RequestContextHolder.getRequestAttributes() 获取到父线程的请求头。

目前自己的解决方式是通过 HystrixCommandExecutionHook 重新设置请求参数可传递到子线程。
RequestContextHolder.setRequestAttributes(RequestContextHolder.getRequestAttributes(), true);

但是在课程中并没有看到进行过相关的配置,而之后的功能验证课程中也能正常发起远程调用,被调服务能拿到请求头,请问是我哪里疏忽了吗?同时也想问下,目前的解决方式存在哪些问题或风险呢?

写回答

1回答

张勤一

2022-04-08

同学你好:

    从你的解决方式来看,应该是没有问题的;但是,对于 Header 来说,可能会存在一些攻击性的信息,可以做一些相关的白名单校验。

1
0

Spring Cloud / Alibaba 微服务架构实战

从架构设计到开发实践,手把手实现

1210 学习 · 674 问题

查看课程