@@ -790,4 +790,59 @@ public void fromHttpRequestMultipleForwardedHeaderComma() throws Exception {
790
790
assertEquals ("/rest/mobile/users/1" , result .getPath ());
791
791
}
792
792
793
+ @ Test
794
+ public void fromHttpRequestForwardedHeaderWithHostPortAndWithoutServerPort () throws Exception {
795
+ MockHttpServletRequest request = new MockHttpServletRequest ();
796
+ request .addHeader ("Forwarded" , "proto=https; host=84.198.58.199:9090" );
797
+ request .setScheme ("http" );
798
+ request .setServerName ("example.com" );
799
+ request .setRequestURI ("/rest/mobile/users/1" );
800
+
801
+ HttpRequest httpRequest = new ServletServerHttpRequest (request );
802
+ UriComponents result = UriComponentsBuilder .fromHttpRequest (httpRequest ).build ();
803
+
804
+ assertEquals ("https" , result .getScheme ());
805
+ assertEquals ("84.198.58.199" , result .getHost ());
806
+ assertEquals ("/rest/mobile/users/1" , result .getPath ());
807
+ assertEquals (9090 , result .getPort ());
808
+ assertEquals ("https://84.198.58.199:9090/rest/mobile/users/1" , result .toUriString ());
809
+ }
810
+
811
+ @ Test
812
+ public void fromHttpRequestForwardedHeaderWithHostPortAndServerPort () throws Exception {
813
+ MockHttpServletRequest request = new MockHttpServletRequest ();
814
+ request .addHeader ("Forwarded" , "proto=https; host=84.198.58.199:9090" );
815
+ request .setScheme ("http" );
816
+ request .setServerPort (8080 );
817
+ request .setServerName ("example.com" );
818
+ request .setRequestURI ("/rest/mobile/users/1" );
819
+
820
+ HttpRequest httpRequest = new ServletServerHttpRequest (request );
821
+ UriComponents result = UriComponentsBuilder .fromHttpRequest (httpRequest ).build ();
822
+
823
+ assertEquals ("https" , result .getScheme ());
824
+ assertEquals ("84.198.58.199" , result .getHost ());
825
+ assertEquals ("/rest/mobile/users/1" , result .getPath ());
826
+ assertEquals (9090 , result .getPort ());
827
+ assertEquals ("https://84.198.58.199:9090/rest/mobile/users/1" , result .toUriString ());
828
+ }
829
+
830
+ @ Test
831
+ public void fromHttpRequestForwardedHeaderWithoutHostPortAndWithServerPort () throws Exception {
832
+ MockHttpServletRequest request = new MockHttpServletRequest ();
833
+ request .addHeader ("Forwarded" , "proto=https; host=84.198.58.199" );
834
+ request .setScheme ("http" );
835
+ request .setServerPort (8080 );
836
+ request .setServerName ("example.com" );
837
+ request .setRequestURI ("/rest/mobile/users/1" );
838
+
839
+ HttpRequest httpRequest = new ServletServerHttpRequest (request );
840
+ UriComponents result = UriComponentsBuilder .fromHttpRequest (httpRequest ).build ();
841
+
842
+ assertEquals ("https" , result .getScheme ());
843
+ assertEquals ("84.198.58.199" , result .getHost ());
844
+ assertEquals ("/rest/mobile/users/1" , result .getPath ());
845
+ assertEquals (-1 , result .getPort ());
846
+ assertEquals ("https://84.198.58.199/rest/mobile/users/1" , result .toUriString ());
847
+ }
793
848
}
0 commit comments