Fix wrong reference in UrlPathHelper.removeSemicolonContentInternal()
This commit also changes to short-circuit when `slashIndex` is -1.
This commit is contained in:
parent
2497d4285f
commit
0c347769a2
|
@ -618,9 +618,9 @@ public class UrlPathHelper {
|
|||
}
|
||||
StringBuilder sb = new StringBuilder(requestUri);
|
||||
while (semicolonIndex != -1) {
|
||||
int slashIndex = requestUri.indexOf('/', semicolonIndex + 1);
|
||||
int slashIndex = sb.indexOf("/", semicolonIndex + 1);
|
||||
if (slashIndex == -1) {
|
||||
slashIndex = sb.length();
|
||||
return sb.substring(0, semicolonIndex);
|
||||
}
|
||||
sb.delete(semicolonIndex, slashIndex);
|
||||
semicolonIndex = sb.indexOf(";", semicolonIndex);
|
||||
|
|
|
@ -115,6 +115,9 @@ public class UrlPathHelperTests {
|
|||
request.setRequestURI("/foo;f=F;o=O;o=O/bar;b=B;a=A;r=R");
|
||||
assertThat(helper.getRequestUri(request)).isEqualTo("/foo/bar");
|
||||
|
||||
request.setRequestURI("/foo;f=F;o=O;o=O/bar;b=B;a=A;r=R/baz;test");
|
||||
assertThat(helper.getRequestUri(request)).isEqualTo("/foo/bar/baz");
|
||||
|
||||
// SPR-13455
|
||||
request.setRequestURI("/foo/;test/1");
|
||||
request.setServletPath("/foo/1");
|
||||
|
|
Loading…
Reference in New Issue