11/*
2- * Copyright 2002-2013 the original author or authors.
2+ * Copyright 2002-2014 the original author or authors.
33 *
44 * Licensed under the Apache License, Version 2.0 (the "License");
55 * you may not use this file except in compliance with the License.
2424import org .springframework .web .util .UriComponents ;
2525
2626import static org .junit .Assert .*;
27+ import static org .junit .Assert .assertEquals ;
2728
2829/**
30+ * Unit tests for
31+ * {@link org.springframework.web.servlet.support.ServletUriComponentsBuilder}.
32+ *
2933 * @author Rossen Stoyanchev
3034 */
3135public class ServletUriComponentsBuilderTests {
@@ -85,7 +89,7 @@ public void fromRequestUri() {
8589 }
8690
8791 @ Test
88- public void fromRequestWithForwardedHostHeader () {
92+ public void fromRequestWithForwardedHost () {
8993 request .addHeader ("X-Forwarded-Host" , "anotherHost" );
9094 request .setRequestURI ("/mvc-showcase/data/param" );
9195 request .setQueryString ("foo=123" );
@@ -97,7 +101,7 @@ public void fromRequestWithForwardedHostHeader() {
97101 // SPR-10701
98102
99103 @ Test
100- public void fromRequestWithForwardedHostAndPortHeader () {
104+ public void fromRequestWithForwardedHostIncludingPort () {
101105 request .addHeader ("X-Forwarded-Host" , "webtest.foo.bar.com:443" );
102106 request .setRequestURI ("/mvc-showcase/data/param" );
103107 request .setQueryString ("foo=123" );
@@ -116,6 +120,19 @@ public void fromRequestWithForwardedHostMultiValuedHeader() {
116120 assertEquals ("a.example.org" , ServletUriComponentsBuilder .fromRequest (this .request ).build ().getHost ());
117121 }
118122
123+ // SPR-11855
124+
125+ @ Test
126+ public void fromRequestWithForwardedHostAndPort () {
127+ this .request .addHeader ("X-Forwarded-Host" , "foobarhost" );
128+ this .request .addHeader ("X-Forwarded-Port" , "9090" );
129+ this .request .setServerPort (8080 );
130+ UriComponents uriComponents = ServletUriComponentsBuilder .fromRequest (this .request ).build ();
131+
132+ assertEquals ("foobarhost" , uriComponents .getHost ());
133+ assertEquals (9090 , uriComponents .getPort ());
134+ }
135+
119136 @ Test
120137 public void fromContextPath () {
121138 request .setRequestURI ("/mvc-showcase/data/param" );
0 commit comments