Polishing contribution

Closes gh-27623
This commit is contained in:
Rossen Stoyanchev 2021-11-09 09:45:35 +00:00
parent b5743966d6
commit c6ce65ef56
2 changed files with 10 additions and 9 deletions

View File

@ -405,17 +405,18 @@ public class UrlPathHelper {
* </ul>
*/
private static String getSanitizedPath(final String path) {
if (path.length() == 0) {
int start = path.indexOf("//");
if (start == -1) {
return path;
}
char[] arr = path.toCharArray();
int slowIndex = 0;
for (int fastIndex = 1; fastIndex < arr.length; fastIndex++) {
if (arr[fastIndex] != '/' || arr[slowIndex] != '/') {
arr[++slowIndex] = arr[fastIndex];
char[] content = path.toCharArray();
int slowIndex = start;
for (int fastIndex = start + 1; fastIndex < content.length; fastIndex++) {
if (content[fastIndex] != '/' || content[slowIndex] != '/') {
content[++slowIndex] = content[fastIndex];
}
}
return new String(arr, 0, slowIndex + 1);
return new String(content, 0, slowIndex + 1);
}
/**

View File

@ -232,12 +232,12 @@ class UrlPathHelperTests {
request.setContextPath("/SPR-12372");
request.setPathInfo(null);
request.setServletPath("/foo/bar/");
request.setRequestURI("/SPR-12372/foo//bar/");
request.setRequestURI("/SPR-12372/foo///bar/");
assertThat(helper.getLookupPathForRequest(request)).isEqualTo("/foo/bar/");
request.setServletPath("/foo/bar/");
request.setRequestURI("/SPR-12372/foo/bar//");
request.setRequestURI("////SPR-12372/foo/bar//");
assertThat(helper.getLookupPathForRequest(request)).isEqualTo("/foo/bar/");