gpt4 book ai didi

spring-boot - Feign/Eureka 客户端不传递 X-Forwarded-For header

转载 作者:行者123 更新时间:2023-12-03 17:41:22 28 4
gpt4 key购买 nike

我使用 Spring boot + Eureka + Feign 客户端将请求从一个发现的服务器转发到另一个,并且工作正常。

在我的服务器中,我需要获取原始用户的 IP。

我似乎无法找到如何配置 Feign 客户端以自动编辑“X-Forwarded-For” header ,以便我能够提取原始用户的 IP 地址。

当我使用 getRemoteAddr() 时,我得到了代理 IP 地址(正如预期的那样)。
尝试提取 request.getHeader("X-Forwarded-For") 时,我总是得到 null。

我应该在哪里添加/配置此功能?

最佳答案

您需要添加自己的拦截器,该拦截器将此 header 添加到请求中。

a good example in Feign docs (但可能在问这个问题时它不在那里):

static class ForwardedForInterceptor implements RequestInterceptor {
@Override public void apply(RequestTemplate template) {
template.header("X-Forwarded-For", "origin.host.com");
}
}

public class Example {
public static void main(String[] args) {
Bank bank = Feign.builder()
.decoder(accountDecoder)
.requestInterceptor(new ForwardedForInterceptor())
.target(Bank.class, "https://api.examplebank.com");
}
}

关于spring-boot - Feign/Eureka 客户端不传递 X-Forwarded-For header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35273706/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com