keycloak-uncached

Merge pull request #1574 from stianst/master Fix loading

9/1/2015 9:06:18 AM

Details

diff --git a/forms/common-themes/src/main/java/org/keycloak/theme/FolderTheme.java b/forms/common-themes/src/main/java/org/keycloak/theme/FolderTheme.java
index 7d9ce2a..d1593fe 100644
--- a/forms/common-themes/src/main/java/org/keycloak/theme/FolderTheme.java
+++ b/forms/common-themes/src/main/java/org/keycloak/theme/FolderTheme.java
@@ -18,6 +18,7 @@ public class FolderTheme implements Theme {
     private String parentName;
     private String importName;
     private File themeDir;
+    private File resourcesDir;
     private String name;
     private Type type;
     private final Properties properties;
@@ -34,6 +35,8 @@ public class FolderTheme implements Theme {
             parentName = properties.getProperty("parent");
             importName = properties.getProperty("import");
         }
+
+        resourcesDir = new File(themeDir, "resources");
     }
 
     @Override
@@ -73,8 +76,13 @@ public class FolderTheme implements Theme {
         if (File.separatorChar != '/') {
             path = path.replace('/', File.separatorChar);
         }
-        File file = new File(themeDir, "/resources/" + path);
-        return file.isFile() ? file.toURI().toURL() : null;
+
+        File file = new File(resourcesDir, path);
+        if (!file.isFile() || !file.getCanonicalPath().startsWith(resourcesDir.getCanonicalPath())) {
+            return null;
+        } else {
+            return file.toURI().toURL();
+        }
     }
 
     @Override