diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/AbstractVersionStrategy.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/AbstractVersionStrategy.java index ebd4e73c57..5d639444f7 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/AbstractVersionStrategy.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/AbstractVersionStrategy.java @@ -100,7 +100,12 @@ public abstract class AbstractVersionStrategy implements VersionStrategy { @Override public String addVersion(String path, String version) { - return (this.prefix.endsWith("/") || path.startsWith("/") ? this.prefix + path : this.prefix + "/" + path); + if(path.startsWith(".")) { + return path; + } + else { + return (this.prefix.endsWith("/") || path.startsWith("/") ? this.prefix + path : this.prefix + "/" + path); + } } } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/FixedVersionStrategyTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/FixedVersionStrategyTests.java index 8eeb0ab0ee..b0488ee861 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/FixedVersionStrategyTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/FixedVersionStrategyTests.java @@ -57,7 +57,14 @@ public class FixedVersionStrategyTests { @Test public void addVersion() throws Exception { - assertEquals(this.version + "/" + this.path, this.strategy.addVersion(this.path, this.version)); + assertEquals(this.version + "/" + this.path, this.strategy.addVersion("/" + this.path, this.version)); + } + + // SPR-13727 + @Test + public void addVersionRelativePath() throws Exception { + String relativePath = "../" + this.path; + assertEquals(relativePath, this.strategy.addVersion(relativePath, this.version)); } }