From 011e25a280f3bc20169fc4c35db6bf53023697a0 Mon Sep 17 00:00:00 2001 From: "lancer.hong" Date: Fri, 25 Nov 2022 22:10:31 +0800 Subject: [PATCH] FizzWebClient support x-forwarded-for header --- fizz-bootstrap/src/main/resources/application.yml | 3 +++ fizz-core/src/main/java/we/config/SystemConfig.java | 7 +++++++ fizz-core/src/main/java/we/proxy/FizzWebClient.java | 4 ++++ 3 files changed, 14 insertions(+) diff --git a/fizz-bootstrap/src/main/resources/application.yml b/fizz-bootstrap/src/main/resources/application.yml index 586ac8c..7dd11e5 100644 --- a/fizz-bootstrap/src/main/resources/application.yml +++ b/fizz-bootstrap/src/main/resources/application.yml @@ -125,6 +125,9 @@ fizz: fast-fail-when-registry-center-down: false + web-client: + x-forwarded-for: false + # dedicated-line: # server: # enable: true diff --git a/fizz-core/src/main/java/we/config/SystemConfig.java b/fizz-core/src/main/java/we/config/SystemConfig.java index 83ee4c5..447099f 100644 --- a/fizz-core/src/main/java/we/config/SystemConfig.java +++ b/fizz-core/src/main/java/we/config/SystemConfig.java @@ -132,6 +132,13 @@ public class SystemConfig { @Value("${fizz.fast-fail-when-registry-center-down:false}") private boolean fastFailWhenRegistryCenterDown; + @Value("${fizz.web-client.x-forwarded-for:false}") + private boolean fizzWebClientXForwardedFor; + + public boolean isFizzWebClientXForwardedFor() { + return fizzWebClientXForwardedFor; + } + public boolean isFastFailWhenRegistryCenterDown() { return fastFailWhenRegistryCenterDown; } diff --git a/fizz-core/src/main/java/we/proxy/FizzWebClient.java b/fizz-core/src/main/java/we/proxy/FizzWebClient.java index e9183ac..d7f1f62 100644 --- a/fizz-core/src/main/java/we/proxy/FizzWebClient.java +++ b/fizz-core/src/main/java/we/proxy/FizzWebClient.java @@ -39,6 +39,7 @@ import we.exception.ExternalService4xxException; import we.fizz.exception.FizzRuntimeException; import we.service_registry.RegistryCenterService; import we.util.Consts; +import we.util.NetworkUtils; import we.util.ThreadContext; import we.util.WebUtils; @@ -236,6 +237,9 @@ public class FizzWebClient { ); } setHostHeader(uri, hdrs); + if (systemConfig.isFizzWebClientXForwardedFor()) { + hdrs.add(com.google.common.net.HttpHeaders.X_FORWARDED_FOR, NetworkUtils.getServerIp()); + } } );