You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by bo...@apache.org on 2006/08/01 12:20:44 UTC

svn commit: r427513 - in /myfaces/tobago/trunk: core/src/main/java/org/apache/myfaces/tobago/context/ResourceLocator.java example/security/src/main/java/org/apache/myfaces/tobago/example/security/CheckAuthorisationMethodBinding.java

Author: bommel
Date: Tue Aug  1 03:20:41 2006
New Revision: 427513

URL: http://svn.apache.org/viewvc?rev=427513&view=rev
Log:
try to get resouces from classpath if protocol is unknown

Modified:
    myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ResourceLocator.java
    myfaces/tobago/trunk/example/security/src/main/java/org/apache/myfaces/tobago/example/security/CheckAuthorisationMethodBinding.java

Modified: myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ResourceLocator.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ResourceLocator.java?rev=427513&r1=427512&r2=427513&view=diff
==============================================================================
--- myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ResourceLocator.java (original)
+++ myfaces/tobago/trunk/core/src/main/java/org/apache/myfaces/tobago/context/ResourceLocator.java Tue Aug  1 03:20:41 2006
@@ -124,50 +124,10 @@
         // weblogic uses zip
         // IBM WebSphere uses wsjar
         if ("jar".equals(protocol) || "zip".equals(protocol) || "wsjar".equals(protocol)) {
-          LOG.info("themeUrl = '" + themeUrl + "'");
-          String fileName = themeUrl.toString().substring(
-              protocol.length() + 1, themeUrl.toString().indexOf("!"));
-          URL jarFile;
-          try {
-            jarFile = new URL(fileName);
-          } catch (MalformedURLException e) {
-            // workaround for weblogic on windows
-            jarFile = new URL("file:" + fileName);
-          }
-          InputStream stream = null;
-          try {
-            stream = jarFile.openStream();
-            ZipInputStream zip = new ZipInputStream(stream);
-            while (zip.available() > 0) {
-              ZipEntry nextEntry = zip.getNextEntry();
-              if (nextEntry == null || nextEntry.isDirectory()) {
-                continue;
-              }
-              String name = "/" + nextEntry.getName();
-              if (name.startsWith(prefix)) {
-                if (name.endsWith(".class")) {
-                  // ignore the class files
-                } else if (name.endsWith(".properties")) {
-                  LOG.info("** " + name.substring(1));
-                  InputStream inputStream = classLoader.getResourceAsStream(name.substring(1));
-                  addProperties(inputStream, resources, name, false);
-                } else if (name.endsWith(".properties.xml")) {
-                  LOG.info("** " + name.substring(1));
-                  InputStream inputStream = classLoader.getResourceAsStream(name.substring(1));
-                  LOG.info(inputStream);
-                  addProperties(inputStream, resources, name, true);
-                } else {
-                  resources.add(name);
-                }
-              }
-            }
-          } finally {
-            IOUtils.closeQuietly(stream);
-          }
+          addResources(classLoader, resources, themeUrl, protocol, prefix);
         } else {
-          String error = "Unknown protocol '" + themeUrl + "'";
-          LOG.error(error);
-          throw new Exception(error);
+          LOG.warn("Unknown protocol '" + themeUrl + "'");
+          addResources(classLoader, resources,  themeUrl, protocol, prefix);
         }
       }
     } catch (Exception e) {
@@ -176,6 +136,50 @@
         LOG.error(msg, e);
       }
       throw new ServletException(msg, e);
+    }
+  }
+
+  private void addResources(ClassLoader classLoader, ResourceManagerImpl resources, URL themeUrl, String protocol,
+      String prefix) throws IOException, ServletException {
+    LOG.info("themeUrl = '" + themeUrl + "'");
+    String fileName = themeUrl.toString().substring(
+        protocol.length() + 1, themeUrl.toString().indexOf("!"));
+    URL jarFile;
+    try {
+      jarFile = new URL(fileName);
+    } catch (MalformedURLException e) {
+      // workaround for weblogic on windows
+      jarFile = new URL("file:" + fileName);
+    }
+    InputStream stream = null;
+    try {
+      stream = jarFile.openStream();
+      ZipInputStream zip = new ZipInputStream(stream);
+      while (zip.available() > 0) {
+        ZipEntry nextEntry = zip.getNextEntry();
+        if (nextEntry == null || nextEntry.isDirectory()) {
+          continue;
+        }
+        String name = "/" + nextEntry.getName();
+        if (name.startsWith(prefix)) {
+          if (name.endsWith(".class")) {
+            // ignore the class files
+          } else if (name.endsWith(".properties")) {
+            LOG.info("** " + name.substring(1));
+            InputStream inputStream = classLoader.getResourceAsStream(name.substring(1));
+            addProperties(inputStream, resources, name, false);
+          } else if (name.endsWith(".properties.xml")) {
+            LOG.info("** " + name.substring(1));
+            InputStream inputStream = classLoader.getResourceAsStream(name.substring(1));
+            LOG.info(inputStream);
+            addProperties(inputStream, resources, name, true);
+          } else {
+            resources.add(name);
+          }
+        }
+      }
+    } finally {
+      IOUtils.closeQuietly(stream);
     }
   }
 

Modified: myfaces/tobago/trunk/example/security/src/main/java/org/apache/myfaces/tobago/example/security/CheckAuthorisationMethodBinding.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/example/security/src/main/java/org/apache/myfaces/tobago/example/security/CheckAuthorisationMethodBinding.java?rev=427513&r1=427512&r2=427513&view=diff
==============================================================================
--- myfaces/tobago/trunk/example/security/src/main/java/org/apache/myfaces/tobago/example/security/CheckAuthorisationMethodBinding.java (original)
+++ myfaces/tobago/trunk/example/security/src/main/java/org/apache/myfaces/tobago/example/security/CheckAuthorisationMethodBinding.java Tue Aug  1 03:20:41 2006
@@ -70,8 +70,8 @@
     if (LOG.isDebugEnabled()) {
       LOG.debug("MethodBinding invoke " + getExpressionString());
     }
-    // TODO methodbinding with objects.length == 0 should only checked?
-    if (isAuthorized(facesContext)) {
+    // Methodbindings with a argument list would not be checked for authorisation
+    if (isAuthorized(facesContext) || objects.length > 0) {
       return methodBinding.invoke(facesContext, objects);
     } else {
       // TODO better message