Skip to content

Commit

Permalink
Support comma-separated X-Forwarded-Port
Browse files Browse the repository at this point in the history
Issue: SPR-12813
  • Loading branch information
rstoyanchev committed Mar 13, 2015
1 parent 624790a commit 88a1448
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,8 @@ public static UriComponentsBuilder fromHttpRequest(HttpRequest request) {

String portHeader = request.getHeaders().getFirst("X-Forwarded-Port");
if (StringUtils.hasText(portHeader)) {
port = Integer.parseInt(portHeader);
String[] ports = StringUtils.commaDelimitedListToStringArray(portHeader);
port = Integer.parseInt(ports[0]);
}

String protocolHeader = request.getHeaders().getFirst("X-Forwarded-Proto");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -399,8 +399,23 @@ public void fromHttpRequestWithForwardedProtoAndDefaultPort() {
assertEquals("https://84.198.58.199/mvc-showcase", result.toString());
}

// SPR-12813

@Test
public void fromHttpRequestWithForwardedPortMultiValueHeader() {
MockHttpServletRequest request = new MockHttpServletRequest();
request.setScheme("http");
request.setServerName("localhost");
request.setServerPort(9090);
request.setRequestURI("/mvc-showcase");
request.addHeader("X-Forwarded-Host", "a.example.org");
request.addHeader("X-Forwarded-Port", "80,52022");

HttpRequest httpRequest = new ServletServerHttpRequest(request);
UriComponents result = UriComponentsBuilder.fromHttpRequest(httpRequest).build();

assertEquals("http://a.example.org/mvc-showcase", result.toString());
}

@Test
public void path() throws URISyntaxException {
Expand Down

0 comments on commit 88a1448

Please sign in to comment.