Yoa*_*nda 6 http-headers spring-boot netflix-feign netflix-eureka
我使用Spring boot + Eureka + Feign客户端将请求从一个发现的服务器转发到另一个服务器,它工作正常.
在我的服务器中,我需要获取原始用户的IP.
我似乎无法找到如何配置Feign客户端自动编辑'X-Forwarded-For'标头,以便我能够提取原始用户的IP地址.
当我使用getRemoteAddr()时,我得到代理IP地址(正如预期的那样).当试图提取request.getHeader("X-Forwarded-For")时,我总是得到null.
我应该在哪里添加/配置此功能?
您需要添加自己的拦截器,将此标头添加到请求中。
Feign 文档中有一个很好的例子(但在提出这个问题时可能不存在):
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");
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
547 次 |
| 最近记录: |