You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by gl...@apache.org on 2001/02/04 01:50:40 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader StandardClassLoader.java

glenn       01/02/03 16:50:40

  Modified:    catalina/src/share/org/apache/catalina/loader
                        StandardClassLoader.java
  Log:
  Implement SecurityManager
  
  Revision  Changes    Path
  1.9       +19 -8     jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java
  
  Index: StandardClassLoader.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- StandardClassLoader.java	2001/01/23 22:13:06	1.8
  +++ StandardClassLoader.java	2001/02/04 00:50:40	1.9
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v 1.8 2001/01/23 22:13:06 glenn Exp $
  - * $Revision: 1.8 $
  - * $Date: 2001/01/23 22:13:06 $
  + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v 1.9 2001/02/04 00:50:40 glenn Exp $
  + * $Revision: 1.9 $
  + * $Date: 2001/02/04 00:50:40 $
    *
    * ====================================================================
    *
  @@ -109,7 +109,7 @@
    *
    * @author Craig R. McClanahan
    * @author Remy Maucherat
  - * @version $Revision: 1.8 $ $Date: 2001/01/23 22:13:06 $
  + * @version $Revision: 1.9 $ $Date: 2001/02/04 00:50:40 $
    */
   
   public class StandardClassLoader
  @@ -621,10 +621,8 @@
               if (i >= 0) {
                   try {
                       securityManager.checkPackageDefinition(name.substring(0,i));
  -                } catch (SecurityException se) {
  -                    String error = "Security Violation, attempt to define " +
  -                        "a Class in a restricted package: " + name;
  -                    throw new ClassNotFoundException(error);
  +                } catch (Exception se) {
  +		    throw new ClassNotFoundException(name);
                   }
               }
           }
  @@ -927,6 +925,18 @@
               return (clazz);
           }
   
  +	// If a system class, use system class loader
  +	if( name.startsWith("java.") ) {
  +            ClassLoader loader = system;
  +            clazz = loader.loadClass(name);
  +            if (clazz != null) {         
  +                if (resolve)             
  +                    resolveClass(clazz);
  +                return (clazz);
  +            }
  +	    throw new ClassNotFoundException(name);
  +	}
  +
           // (.5) Permission to access this class when using a SecurityManager
           if (securityManager != null) {
               int i = name.lastIndexOf('.');
  @@ -937,6 +947,7 @@
                       String error = "Security Violation, attempt to use " +
                           "Restricted Class: " + name;
   		    System.out.println(error);
  +		    se.printStackTrace();
                       log(error);
                       throw new ClassNotFoundException(error);
                   }