[Yanel-commits] rev 26162 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Fri Jul 20 11:34:00 CEST 2007


Author: michi
Date: 2007-07-20 11:34:00 +0200 (Fri, 20 Jul 2007)
New Revision: 26162

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
login screen is now configurable

Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2007-07-20 09:28:25 UTC (rev 26161)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2007-07-20 09:34:00 UTC (rev 26162)
@@ -104,7 +104,7 @@
     Sitetree sitetree;
 
     File xsltInfoAndException;
-    File xsltLoginScreen;
+    String xsltLoginScreenDefault;
 
     public static String IDENTITY_MAP_KEY = "identity-map";
     private static String TOOLBAR_KEY = "toolbar";
@@ -137,7 +137,7 @@
         servletContextRealPath = config.getServletContext().getRealPath("/");
 
         xsltInfoAndException = org.wyona.commons.io.FileUtil.file(servletContextRealPath, config.getInitParameter("exception-and-info-screen-xslt"));
-        xsltLoginScreen = org.wyona.commons.io.FileUtil.file(servletContextRealPath, config.getInitParameter("login-screen-xslt"));
+        xsltLoginScreenDefault = config.getInitParameter("login-screen-xslt");
         try {
             yanel = Yanel.getInstance();
             yanel.init();
@@ -1753,7 +1753,13 @@
             } else {
                 String mimeType = patchMimeType("application/xhtml+xml", request);
                 response.setContentType(mimeType + "; charset=" + DEFAULT_ENCODING);
-                response.setStatus(javax.servlet.http.HttpServletResponse.SC_UNAUTHORIZED);            
+                response.setStatus(javax.servlet.http.HttpServletResponse.SC_UNAUTHORIZED);
+
+                File realmDir = realm.getRootDir();
+                if (realmDir == null) realmDir = new File(realm.getConfigFile().getParent());
+                File xsltLoginScreen = org.wyona.commons.io.FileUtil.file(realmDir.getAbsolutePath(), "src" + File.separator + "webapp" + File.separator + xsltLoginScreenDefault);
+                if (!xsltLoginScreen.isFile()) xsltLoginScreen = org.wyona.commons.io.FileUtil.file(servletContextRealPath, xsltLoginScreenDefault);
+
                 Transformer transformer = TransformerFactory.newInstance().newTransformer(new StreamSource(xsltLoginScreen));
                 transformer.setParameter("yanel.back2realm", backToRealm);
                 transformer.setParameter("yanel.reservedPrefix", reservedPrefix);



More information about the Yanel-commits mailing list