Browse Source

Improve StringUtils.cleanPath

Issue: SPR-11793
pull/555/head
Rossen Stoyanchev 12 years ago
parent
commit
748167bfa3
  1. 7
      spring-core/src/main/java/org/springframework/util/StringUtils.java
  2. 2
      spring-core/src/test/java/org/springframework/util/StringUtilsTests.java

7
spring-core/src/main/java/org/springframework/util/StringUtils.java

@ -622,7 +622,12 @@ public abstract class StringUtils { @@ -622,7 +622,12 @@ public abstract class StringUtils {
String prefix = "";
if (prefixIndex != -1) {
prefix = pathToUse.substring(0, prefixIndex + 1);
pathToUse = pathToUse.substring(prefixIndex + 1);
if (prefix.contains("/")) {
prefix = "";
}
else {
pathToUse = pathToUse.substring(prefixIndex + 1);
}
}
if (pathToUse.startsWith(FOLDER_SEPARATOR)) {
prefix = prefix + FOLDER_SEPARATOR;

2
spring-core/src/test/java/org/springframework/util/StringUtilsTests.java

@ -299,6 +299,8 @@ public class StringUtilsTests extends TestCase { @@ -299,6 +299,8 @@ public class StringUtilsTests extends TestCase {
assertEquals("../mypath/myfile", StringUtils.cleanPath("../mypath/../mypath/myfile"));
assertEquals("../mypath/myfile", StringUtils.cleanPath("mypath/../../mypath/myfile"));
assertEquals("/../mypath/myfile", StringUtils.cleanPath("/../mypath/myfile"));
assertEquals("/mypath/myfile", StringUtils.cleanPath("/a/:b/../../mypath/myfile"));
assertEquals("file:///c:/path/to/the%20file.txt", StringUtils.cleanPath("file:///c:/some/../path/to/the%20file.txt"));
}
public void testPathEquals() {

Loading…
Cancel
Save