当前位置: 首页 > 知识库问答 >
问题:

如何通过代码调用透明地传播 HTTP 标头?

越扬
2023-03-14

我在Tomcat服务器上部署了一个SpringBoot应用程序,它使用SpringRestTemplate接收请求并向其他服务发出其他HTTP REST请求。

client --> myApplication --> anotherService

在传入的请求中,有一个< code>CORRELATION_ID HTTP头,用于跟踪请求。我希望对其他服务的任何请求也有这个头,这样我就可以关联不同服务器上的日志。

我如何在不更改现有代码的情况下实现这一点?

是否有任何 RestTemplate感知器,我可以在引导时的某个位置设置,以便它拦截任何传出请求并添加该标头?或者有没有办法在Tomcat服务器中拦截此事件并传播标头?

共有1个答案

张照
2023-03-14

没有这样的自动处理

您可以截获传入调用的头,并将其存储在请求上下文中的某个位置(例如请求范围的bean)。

然后可以使用ClientHttpRequestInterceptor将其放入每个输出请求中。使用restTemplate.getInterceptors().Add(…)添加该拦截器

 类似资料:
  • 假设我有两张桌子: 联系人 活动 我可以执行一个简单的来检索可能具有某种类型activity的联系人: 这将给我所有的联系人,如果他们有任何会议: 注意,我为Jane得到了两行,因为她有两个会议。我没有为Bob获得2行,即使他有2个活动,因为它们被ON子句排除了。我也为莎莉吵架,尽管她没有任何活动。 好吧,这就是我想要做的,但麻烦的是我的模式看起来不是那样的。它有一个中介表(因为多个联系人可能是a

  • 13.4. 通过cgo调用C代码 Go程序可能会遇到要访问C语言的某些硬件驱动函数的场景,或者是从一个C++语言实现的嵌入式数据库查询记录的场景,或者是使用Fortran语言实现的一些线性代数库的场景。C语言作为一个通用语言,很多库会选择提供一个C兼容的API,然后用其他不同的编程语言实现(译者:Go语言需要也应该拥抱这些巨大的代码遗产)。 在本节中,我们将构建一个简易的数据压缩程序,使用了一个G

  • 我想知道我们的面向公众的、只使用HTTP的、通过密码认证的Nexus服务器是否存在潜在的安全问题。

  • 问题内容: 所以我想通过cython从c调用一些python代码。我设法从c调用cython代码。而且我还可以从cython调用python代码。但是,当我将它们全部加在一起时,会丢失一些东西。 这是我的python代码(): 这是我的cython“ bridge”(): 这是c代码(): 运行此命令时,出现以下异常: 我怀疑缺少的部分: 我还没打电话 我还没有 Cython没有产生任何东西- 不

  • 一旦我向concatenatingMediaSource添加一首歌,我就会在它旁边添加一个标签,所以我想知道如何通过这个特定的标签播放一首歌。 obs:ctd是歌曲位置的参考号;

  • 一、透明代理 使用透明代理时,流量将重定向到网络层的代理中,而无需任何客户端配置。这使得透明代理非常适合那些您无法更改客户端行为的情况-代理不兼容的移动应用程序是一个常见示例。 要设置透明代理,我们需要两个新组件。第一种是重定向机制,可以透明地将发往Internet上服务器的TCP连接重新路由到侦听代理服务器。这通常采用与代理服务器位于同一主机上的防火墙的形式 -Linux上的iptables或O