UriComponentsBuilder.fromHttpRequest sets port correctly

Issue: SPR-12771
This commit is contained in:
Rossen Stoyanchev
2015-03-05 21:52:27 -05:00
parent 7bc44a9086
commit d64c48ff5f
3 changed files with 40 additions and 3 deletions

View File

@@ -256,6 +256,26 @@ public class UriComponentsBuilderTests {
assertEquals("a=1", result.getQuery());
}
// SPR-12771
@Test
public void fromHttpRequestResetsPortBeforeSettingIt() throws Exception {
MockHttpServletRequest request = new MockHttpServletRequest();
request.addHeader("X-Forwarded-Proto", "https");
request.addHeader("X-Forwarded-Host", "84.198.58.199");
request.addHeader("X-Forwarded-Port", 443);
request.setScheme("http");
request.setServerName("example.com");
request.setServerPort(80);
request.setRequestURI("/rest/mobile/users/1");
UriComponents result = UriComponentsBuilder.fromHttpRequest(new ServletServerHttpRequest(request)).build();
assertEquals("https", result.getScheme());
assertEquals("84.198.58.199", result.getHost());
assertEquals(-1, result.getPort());
assertEquals("/rest/mobile/users/1", result.getPath());
}
@Test
public void path() throws URISyntaxException {
UriComponentsBuilder builder = UriComponentsBuilder.fromPath("/foo/bar");