Follow-up fix, checking also "ws" and port 80 case
See gh-27097
This commit is contained in:
@@ -378,7 +378,7 @@ class UriComponentsBuilderTests {
|
||||
|
||||
@ParameterizedTest // gh-17368, gh-27097
|
||||
@ValueSource(strings = {"https", "wss"})
|
||||
void fromHttpRequestResetsPortBeforeSettingIt(String protocol) {
|
||||
void fromHttpRequestResetsPort443(String protocol) {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.addHeader("X-Forwarded-Proto", protocol);
|
||||
request.addHeader("X-Forwarded-Host", "84.198.58.199");
|
||||
@@ -397,6 +397,27 @@ class UriComponentsBuilderTests {
|
||||
assertThat(result.getPath()).isEqualTo("/rest/mobile/users/1");
|
||||
}
|
||||
|
||||
@ParameterizedTest // gh-27097
|
||||
@ValueSource(strings = {"http", "ws"})
|
||||
void fromHttpRequestResetsPort80(String protocol) {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
request.addHeader("X-Forwarded-Proto", protocol);
|
||||
request.addHeader("X-Forwarded-Host", "84.198.58.199");
|
||||
request.addHeader("X-Forwarded-Port", 80);
|
||||
request.setScheme("http");
|
||||
request.setServerName("example.com");
|
||||
request.setServerPort(80);
|
||||
request.setRequestURI("/path");
|
||||
|
||||
HttpRequest httpRequest = new ServletServerHttpRequest(request);
|
||||
UriComponents result = UriComponentsBuilder.fromHttpRequest(httpRequest).build();
|
||||
|
||||
assertThat(result.getScheme()).isEqualTo(protocol);
|
||||
assertThat(result.getHost()).isEqualTo("84.198.58.199");
|
||||
assertThat(result.getPort()).isEqualTo(-1);
|
||||
assertThat(result.getPath()).isEqualTo("/path");
|
||||
}
|
||||
|
||||
@Test // SPR-14761
|
||||
void fromHttpRequestWithForwardedIPv4Host() {
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
|
||||
Reference in New Issue
Block a user