remm        01/11/02 18:27:32

  Modified:    catalina/src/share/org/apache/catalina/loader Tag:
                        tomcat_40_branch WebappClassLoader.java
  Log:
  - Port from HEAD:
    - Most of the classloader setters now will do an explicit check for AllPermission.
  - Note: I'm not porting the "canonicalize everything" patch at the moment. I'm not
    sure it is really needed.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.15.2.7  +36 -7     
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.15.2.6
  retrieving revision 1.15.2.7
  diff -u -r1.15.2.6 -r1.15.2.7
  --- WebappClassLoader.java    2001/10/20 18:23:35     1.15.2.6
  +++ WebappClassLoader.java    2001/11/03 02:27:32     1.15.2.7
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
 1.15.2.6 2001/10/20 18:23:35 remm Exp $
  - * $Revision: 1.15.2.6 $
  - * $Date: 2001/10/20 18:23:35 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
 1.15.2.7 2001/11/03 02:27:32 remm Exp $
  + * $Revision: 1.15.2.7 $
  + * $Date: 2001/11/03 02:27:32 $
    *
    * ====================================================================
    *
  @@ -119,12 +119,10 @@
    * <p>
    * <strong>IMPLEMENTATION NOTE</strong> - No check for sealing violations or
    * security is made unless a security manager is present.
  - * <p>
  - * <strong>FIXME</strong> - Implement findResources.
    *
    * @author Remy Maucherat
    * @author Craig R. McClanahan
  - * @version $Revision: 1.15.2.6 $ $Date: 2001/10/20 18:23:35 $
  + * @version $Revision: 1.15.2.7 $ $Date: 2001/11/03 02:27:32 $
    */
   public class WebappClassLoader
       extends URLClassLoader
  @@ -341,6 +339,12 @@
       protected boolean started = false;
   
   
  +    /**
  +     * All permission.
  +     */
  +    private Permission allPermission = new java.security.AllPermission();
  +
  +
       // ------------------------------------------------------------- Properties
   
   
  @@ -361,6 +365,9 @@
        */
       public void setDebug(int debug) {
   
  +        if (securityManager != null)
  +            securityManager.checkPermission(allPermission);
  +
           this.debug = debug;
   
       }
  @@ -383,6 +390,9 @@
        */
       public void setDelegate(boolean delegate) {
   
  +        if (securityManager != null)
  +            securityManager.checkPermission(allPermission);
  +
           this.delegate = delegate;
   
       }
  @@ -395,7 +405,8 @@
        * @param path file directory path
        */
       public void setPermissions(String path) {
  -        if( securityManager != null ) {
  +        if (securityManager != null) {
  +            securityManager.checkPermission(allPermission);
               if( path.startsWith("jndi:") || path.startsWith("jar:jndi:") ) {
                   permissionList.add(new JndiPermission(path + "*"));
               } else {
  @@ -431,6 +442,9 @@
        */
       public void setJarPath(String jarPath) {
   
  +        if (securityManager != null)
  +            securityManager.checkPermission(allPermission);
  +
           this.jarPath = jarPath;
   
       }
  @@ -451,6 +465,9 @@
        */
       public void addRepository(String repository) {
   
  +        if (securityManager != null)
  +            securityManager.checkPermission(allPermission);
  +
           // Ignore any of the standard repositories, as they are set up using
           // either addJar or addRepository
           if (repository.startsWith("/WEB-INF/lib")
  @@ -480,6 +497,9 @@
        */
       synchronized void addRepository(String repository, File file) {
   
  +        if (securityManager != null)
  +            securityManager.checkPermission(allPermission);
  +
           // Note : There should be only one (of course), but I think we should
           // keep this a bit generic
   
  @@ -513,6 +533,9 @@
       synchronized void addJar(String jar, JarFile jarFile, File file)
           throws IOException {
   
  +        if (securityManager != null)
  +            securityManager.checkPermission(allPermission);
  +
           if (jar == null)
               return;
           if (jarFile == null)
  @@ -1413,6 +1436,9 @@
        */
       public void start() throws LifecycleException {
   
  +        if (securityManager != null)
  +            securityManager.checkPermission(allPermission);
  +
           started = true;
   
       }
  @@ -1424,6 +1450,9 @@
        * @exception LifecycleException if a lifecycle error occurs
        */
       public void stop() throws LifecycleException {
  +
  +        if (securityManager != null)
  +            securityManager.checkPermission(allPermission);
   
           started = false;
   
  
  
  

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

Reply via email to