Support comma-separated X-Forwarded-Port
Issue: SPR-12813
This commit is contained in:
parent
624790a520
commit
88a14488a1
|
@ -297,7 +297,8 @@ public class UriComponentsBuilder implements Cloneable {
|
|||
|
||||
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");
|
||||
|
|
|
@ -399,8 +399,23 @@ public class UriComponentsBuilderTests {
|
|||
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 {
|
||||
|
|
Loading…
Reference in New Issue