Changes property to spring.cloud.gateway.forwarded.by.enabled
Defaults to false. See gh-2658
This commit is contained in:
@@ -7,6 +7,10 @@
|
||||
== Forwarded Headers Filter
|
||||
The `Forwarded` Headers Filter creates a `Forwarded` header to send to the downstream service. It adds the `Host` header, scheme and port of the current request to any existing `Forwarded` header.
|
||||
|
||||
The `Forwarded by` header part can be enabled by setting the following property to true (defaults to false):
|
||||
|
||||
- `spring.cloud.gateway.forwarded.by.enabled=true`
|
||||
|
||||
[[removehopbyhop-headers-filter]]
|
||||
== RemoveHopByHop Headers Filter
|
||||
The `RemoveHopByHop` Headers Filter removes headers from forwarded requests. The default list of headers that is removed comes from the https://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-14#section-7.1.3[IETF].
|
||||
|
||||
@@ -317,8 +317,11 @@ public class GatewayAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnProperty(name = "spring.cloud.gateway.forwarded.enabled", matchIfMissing = true)
|
||||
public ForwardedHeadersFilter forwardedHeadersFilter() {
|
||||
return new ForwardedHeadersFilter();
|
||||
public ForwardedHeadersFilter forwardedHeadersFilter(Environment env) {
|
||||
boolean forwardedByEnabled = env.getProperty("spring.cloud.gateway.forwarded.by.enabled", Boolean.class, false);
|
||||
ForwardedHeadersFilter forwardedHeadersFilter = new ForwardedHeadersFilter();
|
||||
forwardedHeadersFilter.setForwardedByEnabled(forwardedByEnabled);
|
||||
return forwardedHeadersFilter;
|
||||
}
|
||||
|
||||
// HttpHeaderFilter beans
|
||||
|
||||
@@ -30,7 +30,6 @@ import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
@@ -44,7 +43,6 @@ import org.springframework.web.server.ServerWebExchange;
|
||||
* @author Olga Maciaszek-Sharma
|
||||
* @author Tillmann Heigel
|
||||
*/
|
||||
@ConfigurationProperties("spring.cloud.gateway.forwarded")
|
||||
public class ForwardedHeadersFilter implements HttpHeadersFilter, Ordered {
|
||||
|
||||
@Value("${server.port}")
|
||||
@@ -52,8 +50,7 @@ public class ForwardedHeadersFilter implements HttpHeadersFilter, Ordered {
|
||||
|
||||
private final Log logger = LogFactory.getLog(getClass());
|
||||
|
||||
/** If Forwarded: by header is enabled. */
|
||||
private boolean byEnabled = true;
|
||||
private boolean forwardedByEnabled = false;
|
||||
|
||||
/**
|
||||
* Forwarded header.
|
||||
@@ -103,12 +100,8 @@ public class ForwardedHeadersFilter implements HttpHeadersFilter, Ordered {
|
||||
return result;
|
||||
}
|
||||
|
||||
public boolean isByEnabled() {
|
||||
return byEnabled;
|
||||
}
|
||||
|
||||
public void setByEnabled(boolean byEnabled) {
|
||||
this.byEnabled = byEnabled;
|
||||
public void setForwardedByEnabled(boolean forwardedByEnabled) {
|
||||
this.forwardedByEnabled = forwardedByEnabled;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -162,7 +155,7 @@ public class ForwardedHeadersFilter implements HttpHeadersFilter, Ordered {
|
||||
forwarded.put("for", forValue);
|
||||
}
|
||||
|
||||
if (byEnabled) {
|
||||
if (forwardedByEnabled) {
|
||||
addForwardedByHeader(forwarded);
|
||||
}
|
||||
|
||||
|
||||
@@ -389,6 +389,12 @@
|
||||
"description": "Enables the ForwardedHeadersFilter.",
|
||||
"defaultValue": "true"
|
||||
},
|
||||
{
|
||||
"name": "spring.cloud.gateway.forwarded.by.enabled",
|
||||
"type": "java.lang.Boolean",
|
||||
"description": "Enables the Forwarded: by header part.",
|
||||
"defaultValue": "false"
|
||||
},
|
||||
{
|
||||
"name": "spring.cloud.gateway.httpserver.wiretap",
|
||||
"type": "java.lang.Boolean",
|
||||
|
||||
@@ -207,7 +207,7 @@ public class ForwardedHeadersFilterTests {
|
||||
Forwarded forwarded = new Forwarded();
|
||||
InetAddress ipv4Address = InetAddress.getByName("216.103.69.111");
|
||||
ForwardedHeadersFilter forwardedHeadersFilter = new ForwardedHeadersFilter();
|
||||
forwardedHeadersFilter.setByEnabled(true);
|
||||
forwardedHeadersFilter.setForwardedByEnabled(true);
|
||||
|
||||
forwardedHeadersFilter.addForwardedBy(forwarded, ipv4Address);
|
||||
|
||||
@@ -220,7 +220,7 @@ public class ForwardedHeadersFilterTests {
|
||||
Forwarded forwarded = new Forwarded();
|
||||
InetAddress ipv6Address = InetAddress.getByName("abc4:babf:955f:1724:11bc:0153:275c:d36e");
|
||||
ForwardedHeadersFilter forwardedHeadersFilter = new ForwardedHeadersFilter();
|
||||
forwardedHeadersFilter.setByEnabled(true);
|
||||
forwardedHeadersFilter.setForwardedByEnabled(true);
|
||||
|
||||
forwardedHeadersFilter.addForwardedBy(forwarded, ipv6Address);
|
||||
|
||||
@@ -234,7 +234,7 @@ public class ForwardedHeadersFilterTests {
|
||||
Forwarded forwarded = new Forwarded();
|
||||
InetAddress ipv4Address = InetAddress.getByName("216.103.69.111");
|
||||
ForwardedHeadersFilter forwardedHeadersFilter = new ForwardedHeadersFilter();
|
||||
forwardedHeadersFilter.setByEnabled(false);
|
||||
forwardedHeadersFilter.setForwardedByEnabled(false);
|
||||
|
||||
forwardedHeadersFilter.addForwardedBy(forwarded, ipv4Address);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user