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]>