File tree Expand file tree Collapse file tree 2 files changed +18
-1
lines changed
main/java/org/springframework/web/filter
test/java/org/springframework/web/filter Expand file tree Collapse file tree 2 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -279,7 +279,7 @@ protected AbstractTrailingSlashHandler(@Nullable Consumer<HttpServletRequest> in
279
279
@ Override
280
280
public boolean canHandle (HttpServletRequest request , RequestPath path ) {
281
281
List <PathContainer .Element > elements = path .elements ();
282
- return (! elements .isEmpty () && elements .get (elements .size () - 1 ).value ().equals ("/" ));
282
+ return (elements .size () > 1 && elements .get (elements .size () - 1 ).value ().equals ("/" ));
283
283
}
284
284
285
285
@ Override
Original file line number Diff line number Diff line change @@ -69,6 +69,23 @@ void testTrailingSlashWithRequestWrapping(
69
69
assertThat (actual .getPathInfo ()).isEqualTo (pathInfo );
70
70
}
71
71
72
+ @ Test
73
+ void shouldNotSkipTrailingSlashForRootPath () throws Exception {
74
+ UrlHandlerFilter filter = UrlHandlerFilter .trailingSlashHandler ("/**" ).wrapRequest ().build ();
75
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/" );
76
+ request .setPathInfo ("/" );
77
+
78
+ MockFilterChain chain = new MockFilterChain ();
79
+ filter .doFilterInternal (request , new MockHttpServletResponse (), chain );
80
+
81
+ HttpServletRequest actual = (HttpServletRequest ) chain .getRequest ();
82
+ assertThat (actual ).isNotNull ().isSameAs (request );
83
+ assertThat (actual .getRequestURI ()).isEqualTo ("/" );
84
+ assertThat (actual .getRequestURL ().toString ()).isEqualTo ("http://localhost/" );
85
+ assertThat (actual .getServletPath ()).isEqualTo ("" );
86
+ assertThat (actual .getPathInfo ()).isEqualTo ("/" );
87
+ }
88
+
72
89
@ Test
73
90
void noTrailingSlashWithRequestWrapping () throws Exception {
74
91
testNoTrailingSlashWithRequestWrapping ("/path/**" , "/path/123" );
You can’t perform that action at this time.
0 commit comments