+ String pathInfo = req.getPathInfo();
+ if (pathInfo.startsWith("//"))
+ pathInfo = pathInfo.substring(1);
+ String path = URLDecoder.decode(pathInfo, StandardCharsets.UTF_8);
+
+ if (path.toLowerCase().endsWith(".css")) {
+ path = path.substring(1);
+ int firstSlash = path.indexOf('/');
+ String themeId = path.substring(0, firstSlash);
+ String cssPath = path.substring(firstSlash);
+ CmsTheme cmsTheme = themes.get(themeId);
+ if (cmsTheme == null)
+ throw new IllegalArgumentException("Theme " + themeId + " not found.");
+ resp.setContentType("text/css");
+ IOUtils.copy(cmsTheme.getResourceAsStream(cssPath), resp.getOutputStream());
+ return;
+ }
+