Fix forwarded host formatting
Follow-up to recent commit
75e2e2c3c7
Closes gh-34253
This commit is contained in:
@@ -181,7 +181,8 @@ public abstract class ForwardedHeaderUtils {
|
||||
String forHeader = headers.getFirst("X-Forwarded-For");
|
||||
if (StringUtils.hasText(forHeader)) {
|
||||
String host = StringUtils.tokenizeToStringArray(forHeader, ",")[0];
|
||||
host = (!host.startsWith("[") && !host.endsWith("]") ? "[" + host + "]" : host);
|
||||
boolean ipv6 = (host.indexOf(':') != -1);
|
||||
host = (ipv6 && !host.startsWith("[") && !host.endsWith("]") ? "[" + host + "]" : host);
|
||||
return InetSocketAddress.createUnresolved(host, port);
|
||||
}
|
||||
|
||||
|
||||
@@ -481,7 +481,7 @@ class ForwardedHeaderFilterTests {
|
||||
request.addHeader(X_FORWARDED_FOR, "203.0.113.195");
|
||||
HttpServletRequest actual = filterAndGetWrappedRequest();
|
||||
|
||||
assertThat(actual.getRemoteAddr()).isEqualTo(actual.getRemoteHost()).isEqualTo("[203.0.113.195]");
|
||||
assertThat(actual.getRemoteAddr()).isEqualTo(actual.getRemoteHost()).isEqualTo("203.0.113.195");
|
||||
assertThat(actual.getRemotePort()).isEqualTo(MockHttpServletRequest.DEFAULT_SERVER_PORT);
|
||||
}
|
||||
|
||||
@@ -490,7 +490,7 @@ class ForwardedHeaderFilterTests {
|
||||
request.addHeader(X_FORWARDED_FOR, "203.0.113.195, 70.41.3.18, 150.172.238.178");
|
||||
HttpServletRequest actual = filterAndGetWrappedRequest();
|
||||
|
||||
assertThat(actual.getRemoteAddr()).isEqualTo(actual.getRemoteHost()).isEqualTo("[203.0.113.195]");
|
||||
assertThat(actual.getRemoteAddr()).isEqualTo(actual.getRemoteHost()).isEqualTo("203.0.113.195");
|
||||
assertThat(actual.getRemotePort()).isEqualTo(MockHttpServletRequest.DEFAULT_SERVER_PORT);
|
||||
}
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@ class ForwardedHeaderTransformerTests {
|
||||
|
||||
request = this.requestMutator.apply(request);
|
||||
assertThat(request.getRemoteAddress()).isNotNull();
|
||||
assertThat(request.getRemoteAddress().getHostName()).isEqualTo("[203.0.113.195]");
|
||||
assertThat(request.getRemoteAddress().getHostName()).isEqualTo("203.0.113.195");
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user