File tree 3 files changed +5
-4
lines changed
main/java/org/springframework/web/util
test/java/org/springframework/web
3 files changed +5
-4
lines changed Original file line number Diff line number Diff line change @@ -181,7 +181,8 @@ private static void adaptForwardedHost(UriComponentsBuilder uriComponentsBuilder
181
181
String forHeader = headers .getFirst ("X-Forwarded-For" );
182
182
if (StringUtils .hasText (forHeader )) {
183
183
String host = StringUtils .tokenizeToStringArray (forHeader , "," )[0 ];
184
- host = (!host .startsWith ("[" ) && !host .endsWith ("]" ) ? "[" + host + "]" : host );
184
+ boolean ipv6 = (host .indexOf (':' ) != -1 );
185
+ host = (ipv6 && !host .startsWith ("[" ) && !host .endsWith ("]" ) ? "[" + host + "]" : host );
185
186
return InetSocketAddress .createUnresolved (host , port );
186
187
}
187
188
Original file line number Diff line number Diff line change @@ -481,7 +481,7 @@ void xForwardedForSingleIdentifier() throws Exception {
481
481
request .addHeader (X_FORWARDED_FOR , "203.0.113.195" );
482
482
HttpServletRequest actual = filterAndGetWrappedRequest ();
483
483
484
- assertThat (actual .getRemoteAddr ()).isEqualTo (actual .getRemoteHost ()).isEqualTo ("[ 203.0.113.195] " );
484
+ assertThat (actual .getRemoteAddr ()).isEqualTo (actual .getRemoteHost ()).isEqualTo ("203.0.113.195" );
485
485
assertThat (actual .getRemotePort ()).isEqualTo (MockHttpServletRequest .DEFAULT_SERVER_PORT );
486
486
}
487
487
@@ -490,7 +490,7 @@ void xForwardedForMultipleIdentifiers() throws Exception {
490
490
request .addHeader (X_FORWARDED_FOR , "203.0.113.195, 70.41.3.18, 150.172.238.178" );
491
491
HttpServletRequest actual = filterAndGetWrappedRequest ();
492
492
493
- assertThat (actual .getRemoteAddr ()).isEqualTo (actual .getRemoteHost ()).isEqualTo ("[ 203.0.113.195] " );
493
+ assertThat (actual .getRemoteAddr ()).isEqualTo (actual .getRemoteHost ()).isEqualTo ("203.0.113.195" );
494
494
assertThat (actual .getRemotePort ()).isEqualTo (MockHttpServletRequest .DEFAULT_SERVER_PORT );
495
495
}
496
496
Original file line number Diff line number Diff line change @@ -230,7 +230,7 @@ void xForwardedFor() {
230
230
231
231
request = this .requestMutator .apply (request );
232
232
assertThat (request .getRemoteAddress ()).isNotNull ();
233
- assertThat (request .getRemoteAddress ().getHostName ()).isEqualTo ("[ 203.0.113.195] " );
233
+ assertThat (request .getRemoteAddress ().getHostName ()).isEqualTo ("203.0.113.195" );
234
234
}
235
235
236
236
You can’t perform that action at this time.
0 commit comments