diff --git a/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java b/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java index 4711071fb0..4035c8d248 100644 --- a/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java +++ b/applications/content/src/main/java/org/apache/ofbiz/content/data/DataResourceWorker.java @@ -544,7 +544,7 @@ private static void checkOfbizFileAllowList(File file) throws GeneralException { /** * Checks that the given file is within the provided context root directory. */ - private static void checkContextFileBoundary(File file, String contextRoot) throws GeneralException { + static void checkContextFileBoundary(File file, String contextRoot) throws GeneralException { try { String canonicalAllowed = new File(contextRoot).getCanonicalPath(); String canonicalFilePath = file.getCanonicalPath(); @@ -718,10 +718,10 @@ public static File getContentFile(String dataResourceTypeId, String objectInfo, sep = "/"; } file = FileUtil.getFile(contextRoot + sep + objectInfo); + checkContextFileBoundary(file, contextRoot); if (!file.exists()) { throw new FileNotFoundException("No file found: " + (contextRoot + sep + objectInfo)); } - checkContextFileBoundary(file, contextRoot); } return file; @@ -1285,10 +1285,10 @@ public static void renderFile(String dataResourceTypeId, String objectInfo, Stri sep = "/"; } File file = FileUtil.getFile(prefix + sep + objectInfo); + checkContextFileBoundary(file, rootDir); if (!file.exists()) { throw new FileNotFoundException("No file found: " + file.getAbsolutePath()); } - checkContextFileBoundary(file, rootDir); try (InputStreamReader in = new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8)) { if (Debug.infoOn()) { String enc = in.getEncoding(); diff --git a/applications/content/src/main/java/org/apache/ofbiz/content/data/DataServices.java b/applications/content/src/main/java/org/apache/ofbiz/content/data/DataServices.java index 56a618a18e..2feed5755d 100644 --- a/applications/content/src/main/java/org/apache/ofbiz/content/data/DataServices.java +++ b/applications/content/src/main/java/org/apache/ofbiz/content/data/DataServices.java @@ -268,6 +268,11 @@ public static Map createFileMethod(DispatchContext dctx, Map updateFileMethod(DispatchContext dctx, Map