Use createUnresolved for forwarded header address

Avoid DNS resolution.

See gh-26748
This commit is contained in:
Rossen Stoyanchev
2021-04-07 12:49:41 +01:00
parent fa4c62cab2
commit c5ac8e8ab6
2 changed files with 4 additions and 4 deletions

View File

@@ -371,14 +371,14 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable {
"Failed to parse a port from \"forwarded\"-type header value: " + value);
}
}
return new InetSocketAddress(host, port);
return InetSocketAddress.createUnresolved(host, port);
}
}
String forHeader = request.getHeaders().getFirst("X-Forwarded-For");
if (StringUtils.hasText(forHeader)) {
String host = StringUtils.tokenizeToStringArray(forHeader, ",")[0];
return new InetSocketAddress(host, port);
return InetSocketAddress.createUnresolved(host, port);
}
return null;

View File

@@ -441,7 +441,7 @@ public class ForwardedHeaderFilterTests {
request.addHeader(FORWARDED, "for=\"[2001:db8:cafe::17]\"");
HttpServletRequest actual = filterAndGetWrappedRequest();
assertThat(actual.getRemoteAddr()).isEqualTo(actual.getRemoteHost()).isEqualTo("2001:db8:cafe:0:0:0:0:17");
assertThat(actual.getRemoteAddr()).isEqualTo(actual.getRemoteHost()).isEqualTo("[2001:db8:cafe::17]");
assertThat(actual.getRemotePort()).isEqualTo(MockHttpServletRequest.DEFAULT_SERVER_PORT);
}
@@ -459,7 +459,7 @@ public class ForwardedHeaderFilterTests {
request.addHeader(FORWARDED, "For=\"[2001:db8:cafe::17]:47011\"");
HttpServletRequest actual = filterAndGetWrappedRequest();
assertThat(actual.getRemoteAddr()).isEqualTo(actual.getRemoteHost()).isEqualTo("2001:db8:cafe:0:0:0:0:17");
assertThat(actual.getRemoteAddr()).isEqualTo(actual.getRemoteHost()).isEqualTo("[2001:db8:cafe::17]");
assertThat(actual.getRemotePort()).isEqualTo(47011);
}