Make ForwardedHeadersFilter.serverPort nullable
See gh-2658
This commit is contained in:
@@ -317,10 +317,11 @@ public class GatewayAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnProperty(name = "spring.cloud.gateway.forwarded.enabled", matchIfMissing = true)
|
||||
public ForwardedHeadersFilter forwardedHeadersFilter(Environment env) {
|
||||
public ForwardedHeadersFilter forwardedHeadersFilter(Environment env, ServerProperties serverProperties) {
|
||||
boolean forwardedByEnabled = env.getProperty("spring.cloud.gateway.forwarded.by.enabled", Boolean.class, false);
|
||||
ForwardedHeadersFilter forwardedHeadersFilter = new ForwardedHeadersFilter();
|
||||
forwardedHeadersFilter.setForwardedByEnabled(forwardedByEnabled);
|
||||
forwardedHeadersFilter.setServerPort(serverProperties.getPort());
|
||||
return forwardedHeadersFilter;
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,6 @@ import java.util.Map;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.core.Ordered;
|
||||
import org.springframework.http.HttpHeaders;
|
||||
import org.springframework.http.server.reactive.ServerHttpRequest;
|
||||
@@ -45,8 +44,7 @@ import org.springframework.web.server.ServerWebExchange;
|
||||
*/
|
||||
public class ForwardedHeadersFilter implements HttpHeadersFilter, Ordered {
|
||||
|
||||
@Value("${server.port}")
|
||||
private int serverPort;
|
||||
private Integer serverPort;
|
||||
|
||||
private final Log logger = LogFactory.getLog(getClass());
|
||||
|
||||
@@ -104,6 +102,10 @@ public class ForwardedHeadersFilter implements HttpHeadersFilter, Ordered {
|
||||
this.forwardedByEnabled = forwardedByEnabled;
|
||||
}
|
||||
|
||||
public void setServerPort(Integer serverPort) {
|
||||
this.serverPort = serverPort;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrder() {
|
||||
return 0;
|
||||
@@ -179,7 +181,7 @@ public class ForwardedHeadersFilter implements HttpHeadersFilter, Ordered {
|
||||
if (localAddress instanceof Inet6Address) {
|
||||
byValue = "[" + byValue + "]";
|
||||
}
|
||||
if (serverPort > 0) {
|
||||
if (serverPort != null && serverPort > 0) {
|
||||
byValue = byValue + ":" + serverPort;
|
||||
}
|
||||
forwarded.put("by", byValue);
|
||||
|
||||
Reference in New Issue
Block a user