remm        02/02/02 09:55:08

  Modified:    catalina/src/share/org/apache/catalina/loader
                        WebappLoader.java
  Log:
  - Attempt to fix the (very complex) bug 5201.
  - Bind the CCL to the webapp ClassLoader during the start of the context's children
    and subcomponents.
  - Also add some commented out code granting permissions to the webapp codebases
    to read/write its work directory. Glenn: This grants the permissions mandated in 
the
    spec, so I'd really like to add them.
  
  Revision  Changes    Path
  1.23      +26 -7     
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappLoader.java
  
  Index: WebappLoader.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappLoader.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- WebappLoader.java 4 Jan 2002 17:09:08 -0000       1.22
  +++ WebappLoader.java 2 Feb 2002 17:55:08 -0000       1.23
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappLoader.java,v
 1.22 2002/01/04 17:09:08 remm Exp $
  - * $Revision: 1.22 $
  - * $Date: 2002/01/04 17:09:08 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappLoader.java,v
 1.23 2002/02/02 17:55:08 remm Exp $
  + * $Revision: 1.23 $
  + * $Date: 2002/02/02 17:55:08 $
    *
    * ====================================================================
    *
  @@ -72,11 +72,13 @@
   import java.io.IOException;
   import java.io.InputStream;
   import java.io.FileOutputStream;
  +import java.io.FilePermission;
   import java.io.OutputStream;
   import java.net.MalformedURLException;
   import java.net.URL;
   import java.net.URLClassLoader;
   import java.net.URLStreamHandlerFactory;
  +import java.security.Permission;
   import java.util.jar.JarFile;
   import javax.servlet.ServletContext;
   import javax.naming.NamingException;
  @@ -115,7 +117,7 @@
    *
    * @author Craig R. McClanahan
    * @author Remy Maucherat
  - * @version $Revision: 1.22 $ $Date: 2002/01/04 17:09:08 $
  + * @version $Revision: 1.23 $ $Date: 2002/02/02 17:55:08 $
    */
   
   public class WebappLoader
  @@ -644,6 +646,8 @@
               DirContextURLStreamHandler.bind
                   ((ClassLoader) classLoader, this.container.getResources());
   
  +            Thread.currentThread().setContextClassLoader(classLoader);
  +
           } catch (Throwable t) {
               throw new LifecycleException("start: ", t);
           }
  @@ -808,6 +812,24 @@
           ServletContext servletContext =
               ((Context) container).getServletContext();
   
  +        // Assigning permissions for the work directory
  +        File workDir =
  +            (File) servletContext.getAttribute(Globals.WORK_DIR_ATTR);
  +        if (workDir != null) {
  +            /*
  +            try {
  +                String workDirPath = workDir.getCanonicalPath();
  +                classLoader.addPermission
  +                    (new FilePermission(workDirPath, "read,write"));
  +                classLoader.addPermission
  +                    (new FilePermission(workDirPath + File.separator + "-", 
  +                                        "read,write,delete"));
  +            } catch (IOException e) {
  +                // Ignore
  +            }
  +            */
  +        }
  +
           try {
   
               URL rootURL = servletContext.getResource("/");
  @@ -851,9 +873,6 @@
   
               } else {
   
  -                File workDir =
  -                    (File) servletContext.getAttribute
  -                    (Globals.WORK_DIR_ATTR);
                   if (workDir != null) {
                       if (libURL != null) {
                           File libDir = new File(workDir, "WEB-INF/lib/");
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to