remm        01/06/23 18:16:07

  Modified:    catalina/src/share/org/apache/catalina/loader
                        WebappClassLoader.java
  Log:
  - The call to findResourceInternal should be wrapped in a privileged action.
    Bug reported by Craig R. McClanahan
  
  Revision  Changes    Path
  1.6       +15 -6     
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java
  
  Index: WebappClassLoader.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- WebappClassLoader.java    2001/06/23 22:38:03     1.5
  +++ WebappClassLoader.java    2001/06/24 01:16:06     1.6
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
 1.5 2001/06/23 22:38:03 remm Exp $
  - * $Revision: 1.5 $
  - * $Date: 2001/06/23 22:38:03 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
 1.6 2001/06/24 01:16:06 remm Exp $
  + * $Revision: 1.6 $
  + * $Date: 2001/06/24 01:16:06 $
    *
    * ====================================================================
    *
  @@ -124,7 +124,7 @@
    *
    * @author Remy Maucherat
    * @author Craig R. McClanahan
  - * @version $Revision: 1.5 $ $Date: 2001/06/23 22:38:03 $
  + * @version $Revision: 1.6 $ $Date: 2001/06/24 01:16:06 $
    */
   public class WebappClassLoader
       extends URLClassLoader
  @@ -840,7 +840,7 @@
        *
        * @param name Name of the resource to be found
        */
  -    public URL findResource(String name) {
  +    public URL findResource(final String name) {
   
           if (debug >= 3)
               log("    findResource(" + name + ")");
  @@ -849,7 +849,16 @@
   
           ResourceEntry entry = (ResourceEntry) resourceEntries.get(name);
           if (entry == null) {
  -            entry = findResourceInternal(name, name);
  +            if (securityManager != null) {
  +                entry = (ResourceEntry) AccessController.doPrivileged
  +                    (new PrivilegedAction() {
  +                            public Object run() {
  +                                return findResourceInternal(name, name);
  +                            }
  +                        }, accessController);
  +            } else {
  +                entry = findResourceInternal(name, name);
  +            }
           }
           if (entry != null) {
               url = entry.source;
  
  
  

Reply via email to