@@ -378,7 +378,7 @@ void fromHttpRequest() {
378
378
379
379
@ ParameterizedTest // gh-17368, gh-27097
380
380
@ ValueSource (strings = {"https" , "wss" })
381
- void fromHttpRequestResetsPortBeforeSettingIt (String protocol ) {
381
+ void fromHttpRequestResetsPort443 (String protocol ) {
382
382
MockHttpServletRequest request = new MockHttpServletRequest ();
383
383
request .addHeader ("X-Forwarded-Proto" , protocol );
384
384
request .addHeader ("X-Forwarded-Host" , "84.198.58.199" );
@@ -397,6 +397,27 @@ void fromHttpRequestResetsPortBeforeSettingIt(String protocol) {
397
397
assertThat (result .getPath ()).isEqualTo ("/rest/mobile/users/1" );
398
398
}
399
399
400
+ @ ParameterizedTest // gh-27097
401
+ @ ValueSource (strings = {"http" , "ws" })
402
+ void fromHttpRequestResetsPort80 (String protocol ) {
403
+ MockHttpServletRequest request = new MockHttpServletRequest ();
404
+ request .addHeader ("X-Forwarded-Proto" , protocol );
405
+ request .addHeader ("X-Forwarded-Host" , "84.198.58.199" );
406
+ request .addHeader ("X-Forwarded-Port" , 80 );
407
+ request .setScheme ("http" );
408
+ request .setServerName ("example.com" );
409
+ request .setServerPort (80 );
410
+ request .setRequestURI ("/path" );
411
+
412
+ HttpRequest httpRequest = new ServletServerHttpRequest (request );
413
+ UriComponents result = UriComponentsBuilder .fromHttpRequest (httpRequest ).build ();
414
+
415
+ assertThat (result .getScheme ()).isEqualTo (protocol );
416
+ assertThat (result .getHost ()).isEqualTo ("84.198.58.199" );
417
+ assertThat (result .getPort ()).isEqualTo (-1 );
418
+ assertThat (result .getPath ()).isEqualTo ("/path" );
419
+ }
420
+
400
421
@ Test // SPR-14761
401
422
void fromHttpRequestWithForwardedIPv4Host () {
402
423
MockHttpServletRequest request = new MockHttpServletRequest ();
0 commit comments