Index: server/container/spring/src/main/java/org/apache/james/container/spring/resource/DefaultJamesResourceLoader.java IDEA additional info: Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP <+>UTF-8 =================================================================== diff --git a/server/container/spring/src/main/java/org/apache/james/container/spring/resource/DefaultJamesResourceLoader.java b/server/container/spring/src/main/java/org/apache/james/container/spring/resource/DefaultJamesResourceLoader.java --- a/server/container/spring/src/main/java/org/apache/james/container/spring/resource/DefaultJamesResourceLoader.java (revision 4018827513f62974fb9f71d04dd74fcb15555c70) +++ b/server/container/spring/src/main/java/org/apache/james/container/spring/resource/DefaultJamesResourceLoader.java (date 1639119179166) @@ -43,12 +43,10 @@ @Override public void validate(File file) throws IOException { - String canonicalPath = file.getCanonicalPath(); - if (!canonicalPath.startsWith(jamesDirectoriesProvider.getAbsoluteDirectory()) - && !canonicalPath.startsWith(jamesDirectoriesProvider.getRootDirectory()) - && !canonicalPath.startsWith(jamesDirectoriesProvider.getVarDirectory())) { - - throw new IOException(canonicalPath + " jail break outside of " + jamesDirectoriesProvider.getRootDirectory()); + final java.nio.file.Path rootPath = java.nio.file.Path.of(jamesDirectoriesProvider.getRootDirectory()).normalize(); + final java.nio.file.Path path = file.toPath().normalize(); + if (!path.startsWith(rootPath)) { + throw new IOException(path + " jail break outside of " + rootPath); } }