@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
/ *
* Copyright 2002 - 2014 the original author or authors .
* Copyright 2002 - 2015 the original author or authors .
*
* Licensed under the Apache License , Version 2 . 0 ( the "License" ) ;
* you may not use this file except in compliance with the License .
@ -36,15 +36,18 @@ public class ServletUriComponentsBuilderTests {
@@ -36,15 +36,18 @@ public class ServletUriComponentsBuilderTests {
private MockHttpServletRequest request ;
@Before
public void setup ( ) {
this . request = new MockHttpServletRequest ( ) ;
this . request . setScheme ( "http" ) ;
this . request . setServerName ( "localhost" ) ;
this . request . setServerPort ( - 1 ) ;
this . request . setRequestURI ( "/mvc-showcase" ) ;
this . request . setContextPath ( "/mvc-showcase" ) ;
}
@Test
public void fromRequest ( ) {
this . request . setRequestURI ( "/mvc-showcase/data/param" ) ;
@ -64,7 +67,7 @@ public class ServletUriComponentsBuilderTests {
@@ -64,7 +67,7 @@ public class ServletUriComponentsBuilderTests {
public void fromRequestAtypicalHttpPort ( ) {
this . request . setServerPort ( 8080 ) ;
String result = ServletUriComponentsBuilder . fromRequest ( this . request ) . build ( ) . toUriString ( ) ;
assertEquals ( "http://localhost:8080" , result ) ;
assertEquals ( "http://localhost:8080/mvc-showcase " , result ) ;
}
@Test
@ -72,7 +75,7 @@ public class ServletUriComponentsBuilderTests {
@@ -72,7 +75,7 @@ public class ServletUriComponentsBuilderTests {
this . request . setScheme ( "https" ) ;
this . request . setServerPort ( 9043 ) ;
String result = ServletUriComponentsBuilder . fromRequest ( this . request ) . build ( ) . toUriString ( ) ;
assertEquals ( "https://localhost:9043" , result ) ;
assertEquals ( "https://localhost:9043/mvc-showcase " , result ) ;
}
@Test
@ -150,6 +153,19 @@ public class ServletUriComponentsBuilderTests {
@@ -150,6 +153,19 @@ public class ServletUriComponentsBuilderTests {
assertEquals ( "should have used the default port of the forwarded request" , - 1 , result . getPort ( ) ) ;
}
// SPR-12771
@Test
public void fromRequestWithForwardedProtoAndDefaultPort ( ) {
this . request . addHeader ( "X-Forwarded-Proto" , "https" ) ;
this . request . addHeader ( "X-Forwarded-Host" , "84.198.58.199" ) ;
this . request . addHeader ( "X-Forwarded-Port" , "443" ) ;
this . request . setServerPort ( 80 ) ;
UriComponents result = ServletUriComponentsBuilder . fromRequest ( this . request ) . build ( ) ;
assertEquals ( "https://84.198.58.199/mvc-showcase" , result . toString ( ) ) ;
}
@Test
public void fromRequestWithForwardedPrefix ( ) {
this . request . setRequestURI ( "/bar" ) ;