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

2003-02-06 Thread costin
costin  2003/02/06 11:59:03

  Modified:catalina/src/share/org/apache/catalina/loader Tag:
tomcat_40_branch StandardClassLoader.java
  Log:
  Cut&paste error...
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.24.2.3  +5 -5  
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.24.2.2
  retrieving revision 1.24.2.3
  diff -u -r1.24.2.2 -r1.24.2.3
  --- StandardClassLoader.java  5 Feb 2003 22:44:52 -   1.24.2.2
  +++ StandardClassLoader.java  6 Feb 2003 19:59:03 -   1.24.2.3
  @@ -1198,7 +1198,7 @@
   
   // Validate the manifest of a JAR file repository
   if (!repository.endsWith(File.separator) &&
  -!repository.endsWith(File.separator)) {
  +!repository.endsWith("/")) {
   try {
   JarFile jarFile = null;
   Manifest manifest = null;
  
  
  

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




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

2003-02-05 Thread costin
costin  2003/02/05 14:44:52

  Modified:catalina/src/share/org/apache/catalina/loader Tag:
tomcat_40_branch StandardClassLoader.java
  Log:
  Apply classloader fix to branch.
  Original comment:
  
  While most JDK's on Windows are very tolerant of backslashes in file:
  URLs, they are not consisent in exactly WHEN they make the transition
  to spec compliant URLs.  In this case, the url was constructed in
  org.apache.catalina.startup.ClassLoaderFactory.createClassLoader using
  File.separator and extracted using toString().
  
  Submitted by: [EMAIL PROTECTED]
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.24.2.2  +7 -6  
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.24.2.1
  retrieving revision 1.24.2.2
  diff -u -r1.24.2.1 -r1.24.2.2
  --- StandardClassLoader.java  16 Nov 2001 01:21:51 -  1.24.2.1
  +++ StandardClassLoader.java  5 Feb 2003 22:44:52 -   1.24.2.2
  @@ -693,7 +693,7 @@
   
   // Re-locate the class ourselves to track modifications if possible
   for (int i = 0; i < repositories.length; i++) {
  -if (!repositories[i].endsWith("/"))
  +if (!repositories[i].endsWith("/"))
   continue;
   String pathname =
   repositories[i].substring(0, repositories[i].length() - 1);
  @@ -1197,7 +1197,8 @@
   streamHandler = factory.createURLStreamHandler(protocol);
   
   // Validate the manifest of a JAR file repository
  -if (!repository.endsWith(File.separator)) {
  +if (!repository.endsWith(File.separator) &&
  +!repository.endsWith(File.separator)) {
   try {
   JarFile jarFile = null;
   Manifest manifest = null;
  
  
  

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




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

2001-11-15 Thread remm

remm01/11/15 17:21:51

  Modified:catalina/src/share/org/apache/catalina/loader Tag:
tomcat_40_branch StandardClassLoader.java
  Log:
  - Port fix for a race condition in the SCL, where defineClass could be called
multiple times on the same class.
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.24.2.1  +7 -4  
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.24
  retrieving revision 1.24.2.1
  diff -u -r1.24 -r1.24.2.1
  --- StandardClassLoader.java  2001/09/10 17:42:50 1.24
  +++ StandardClassLoader.java  2001/11/16 01:21:51 1.24.2.1
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.24 2001/09/10 17:42:50 remm Exp $
  - * $Revision: 1.24 $
  - * $Date: 2001/09/10 17:42:50 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.24.2.1 2001/11/16 01:21:51 remm Exp $
  + * $Revision: 1.24.2.1 $
  + * $Date: 2001/11/16 01:21:51 $
*
* 
*
  @@ -112,7 +112,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.24 $ $Date: 2001/09/10 17:42:50 $
  + * @version $Revision: 1.24.2.1 $ $Date: 2001/11/16 01:21:51 $
*/
   
   public class StandardClassLoader
  @@ -668,6 +668,9 @@
   log("  super.findClass(" + name + ")");
   try {
   synchronized (this) {
  +clazz = findLoadedClass(name);
  +if (clazz != null)
  +return clazz;
   clazz = super.findClass(name);
   }
   } catch(AccessControlException ace) {
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




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

2001-09-10 Thread remm

remm01/09/10 10:42:51

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  - Apparently the URL class loader is not thread safe, so sync the call to the
superclass must be synced :-(
  - Class loader gurus, please review (if no syncing is needed, let me know) :)
  - Should fix bug 3518.
  
  Revision  ChangesPath
  1.24  +7 -5  
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.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- StandardClassLoader.java  2001/08/15 01:47:01 1.23
  +++ StandardClassLoader.java  2001/09/10 17:42:50 1.24
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.23 2001/08/15 01:47:01 craigmcc Exp $
  - * $Revision: 1.23 $
  - * $Date: 2001/08/15 01:47:01 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.24 2001/09/10 17:42:50 remm Exp $
  + * $Revision: 1.24 $
  + * $Date: 2001/09/10 17:42:50 $
*
* 
*
  @@ -112,7 +112,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.23 $ $Date: 2001/08/15 01:47:01 $
  + * @version $Revision: 1.24 $ $Date: 2001/09/10 17:42:50 $
*/
   
   public class StandardClassLoader
  @@ -667,7 +667,9 @@
   if (debug >= 4)
   log("  super.findClass(" + name + ")");
   try {
  -clazz = super.findClass(name);
  +synchronized (this) {
  +clazz = super.findClass(name);
  +}
   } catch(AccessControlException ace) {
   throw new ClassNotFoundException(name);
   } catch (RuntimeException e) {
  
  
  



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

2001-08-14 Thread craigmcc

craigmcc01/08/14 18:47:01

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  Make StandardClassLoader sensitive to File.separator also.
  
  It helps if you commit *all* of a patch instead of half of it :-)
  
  Submitted by: Christopher Cain <[EMAIL PROTECTED]>
  
  Revision  ChangesPath
  1.23  +5 -5  
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.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- StandardClassLoader.java  2001/07/22 20:25:10 1.22
  +++ StandardClassLoader.java  2001/08/15 01:47:01 1.23
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.22 2001/07/22 20:25:10 pier Exp $
  - * $Revision: 1.22 $
  - * $Date: 2001/07/22 20:25:10 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.23 2001/08/15 01:47:01 craigmcc Exp $
  + * $Revision: 1.23 $
  + * $Date: 2001/08/15 01:47:01 $
*
* 
*
  @@ -112,7 +112,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.22 $ $Date: 2001/07/22 20:25:10 $
  + * @version $Revision: 1.23 $ $Date: 2001/08/15 01:47:01 $
*/
   
   public class StandardClassLoader
  @@ -1192,7 +1192,7 @@
   streamHandler = factory.createURLStreamHandler(protocol);
   
   // Validate the manifest of a JAR file repository
  -if (!repository.endsWith("/")) {
  +if (!repository.endsWith(File.separator)) {
   try {
   JarFile jarFile = null;
   Manifest manifest = null;
  
  
  



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

2001-06-22 Thread glenn

glenn   01/06/22 13:10:49

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  Add support for JndiPermission
  
  Revision  ChangesPath
  1.21  +18 -12
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.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- StandardClassLoader.java  2001/06/22 02:04:11 1.20
  +++ StandardClassLoader.java  2001/06/22 20:10:49 1.21
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.20 2001/06/22 02:04:11 remm Exp $
  - * $Revision: 1.20 $
  - * $Date: 2001/06/22 02:04:11 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.21 2001/06/22 20:10:49 glenn Exp $
  + * $Revision: 1.21 $
  + * $Date: 2001/06/22 20:10:49 $
*
* 
*
  @@ -77,6 +77,7 @@
   import java.net.URLStreamHandler;
   import java.security.AccessControlException;
   import java.security.CodeSource;
  +import java.security.Permission;
   import java.security.PermissionCollection;
   import java.security.Policy;
   import java.util.ArrayList;
  @@ -87,6 +88,7 @@
   import java.util.jar.JarEntry;
   import java.util.jar.JarInputStream;
   import java.util.jar.Manifest;
  +import org.apache.naming.JndiPermission;
   
   
   /**
  @@ -110,7 +112,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.20 $ $Date: 2001/06/22 02:04:11 $
  + * @version $Revision: 1.21 $ $Date: 2001/06/22 20:10:49 $
*/
   
   public class StandardClassLoader
  @@ -296,10 +298,10 @@
   
   
   /**
  - * A list of read FilePermission's required if this loader
  + * A list of read File and Jndi Permission's required if this loader
* is for a web application context.
*/
  -private ArrayList filePermissionList = new ArrayList();
  +private ArrayList permissionList = new ArrayList();
   
   
   /**
  @@ -387,20 +389,24 @@
   
   /**
* If there is a Java SecurityManager create a read FilePermission
  - * for the file directory path.
  + * or JndiPermission for the file directory path.
*
* @param path file directory path
*/
   public void setPermissions(String path) {
if( securityManager != null ) {
  -filePermissionList.add(new FilePermission(path + "-","read"));
  +if( path.startsWith("jndi:") || path.startsWith("jar:jndi:") ) {
  +permissionList.add(new JndiPermission(path + "*"));
  +} else {
  +permissionList.add(new FilePermission(path + "-","read"));
  +}
}
   }
   
   
   /**
* If there is a Java SecurityManager add a read FilePermission
  - * for URL.
  + * or JndiPermission for URL.
*
* @param url URL for a file or directory on local system
*/
  @@ -1139,10 +1145,10 @@
   if ((pc = (PermissionCollection)loaderPC.get(codeUrl)) == null) {
   pc = super.getPermissions(codeSource);
   if (pc != null) {
  -Iterator perms = filePermissionList.iterator();
  +Iterator perms = permissionList.iterator();
   while (perms.hasNext()) {
  -FilePermission fp = (FilePermission)perms.next();
  -pc.add(fp);
  +Permission p = (Permission)perms.next();
  +pc.add(p);
   }
loaderPC.put(codeUrl,pc);
   }
  
  
  



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

2001-06-11 Thread craigmcc

craigmcc01/06/11 20:53:26

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  Synchronize put() calls that modify classCache to avoid
  ConcurrentModificationException errors in the modified() method.
  
  Submitted by: Jon Stevens <[EMAIL PROTECTED]>
  
  Revision  ChangesPath
  1.19  +14 -9 
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.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- StandardClassLoader.java  2001/05/11 18:19:40 1.18
  +++ StandardClassLoader.java  2001/06/12 03:53:26 1.19
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.18 2001/05/11 18:19:40 remm Exp $
  - * $Revision: 1.18 $
  - * $Date: 2001/05/11 18:19:40 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.19 2001/06/12 03:53:26 craigmcc Exp $
  + * $Revision: 1.19 $
  + * $Date: 2001/06/12 03:53:26 $
*
* 
*
  @@ -110,7 +110,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.18 $ $Date: 2001/05/11 18:19:40 $
  + * @version $Revision: 1.19 $ $Date: 2001/06/12 03:53:26 $
*/
   
   public class StandardClassLoader
  @@ -707,8 +707,11 @@
   "' modified '" +
   (new java.sql.Timestamp(file.lastModified())) +
   "'");
  -classCache.put(name, new ClassCacheEntry
  -(clazz, file, file.lastModified()));
  +synchronized (classCache) {
  +classCache.put
  +(name, new ClassCacheEntry
  + (clazz, file, file.lastModified()));
  +}
   }
   
   } catch(AccessControlException ace) {
  @@ -739,9 +742,11 @@
   (new java.sql.Timestamp
   (classUrlConnection.getLastModified())) +
   "'");
  -classCache.put(name, new ClassCacheEntry
  -(clazz, classUrl, 
  - classUrlConnection.getLastModified()));
  +synchronized (classCache) {
  +classCache.put(name, new ClassCacheEntry
  +   (clazz, classUrl, 
  +classUrlConnection.getLastModified()));
  +}
   } catch (IOException e) {
   }
   
  
  
  



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

2001-05-11 Thread remm

remm01/05/11 11:19:53

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  - The resource existence check was incorrect when using a URL, which
was breaking reloading in some cases.
  
  Revision  ChangesPath
  1.18  +7 -6  
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.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- StandardClassLoader.java  2001/05/04 03:49:56 1.17
  +++ StandardClassLoader.java  2001/05/11 18:19:40 1.18
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.17 2001/05/04 03:49:56 remm Exp $
  - * $Revision: 1.17 $
  - * $Date: 2001/05/04 03:49:56 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.18 2001/05/11 18:19:40 remm Exp $
  + * $Revision: 1.18 $
  + * $Date: 2001/05/11 18:19:40 $
*
* 
*
  @@ -110,7 +110,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.17 $ $Date: 2001/05/04 03:49:56 $
  + * @version $Revision: 1.18 $ $Date: 2001/05/11 18:19:40 $
*/
   
   public class StandardClassLoader
  @@ -730,6 +730,9 @@
   try {
   URLConnection classUrlConnection =
   classUrl.openConnection();
  +// Check for existence
  +InputStream is = classUrlConnection.getInputStream();
  +is.close();
   if (debug >= 4)
   log("Caching from '" + classUrl.toString() +
   "' modified '" +
  @@ -740,8 +743,6 @@
   (clazz, classUrl, 
classUrlConnection.getLastModified()));
   } catch (IOException e) {
  -log("Failed tracking modifications of '" 
  -+ classUrl.toString() + "'");
   }
   
   } catch(MalformedURLException ex) {
  
  
  



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

2001-05-03 Thread remm

remm01/05/03 20:49:57

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  - Log a message about tracking changes only if debug level >= 4.
  
  Revision  ChangesPath
  1.17  +10 -9 
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.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- StandardClassLoader.java  2001/05/04 02:01:13 1.16
  +++ StandardClassLoader.java  2001/05/04 03:49:56 1.17
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.16 2001/05/04 02:01:13 remm Exp $
  - * $Revision: 1.16 $
  - * $Date: 2001/05/04 02:01:13 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.17 2001/05/04 03:49:56 remm Exp $
  + * $Revision: 1.17 $
  + * $Date: 2001/05/04 03:49:56 $
*
* 
*
  @@ -110,7 +110,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.16 $ $Date: 2001/05/04 02:01:13 $
  + * @version $Revision: 1.17 $ $Date: 2001/05/04 03:49:56 $
*/
   
   public class StandardClassLoader
  @@ -730,11 +730,12 @@
   try {
   URLConnection classUrlConnection =
   classUrl.openConnection();
  -log("Caching from '" + classUrl.toString() +
  -"' modified '" +
  -(new java.sql.Timestamp
  -(classUrlConnection.getLastModified())) +
  -"'");
  +if (debug >= 4)
  +log("Caching from '" + classUrl.toString() +
  +"' modified '" +
  +(new java.sql.Timestamp
  +(classUrlConnection.getLastModified())) +
  +"'");
   classCache.put(name, new ClassCacheEntry
   (clazz, classUrl, 
classUrlConnection.getLastModified()));
  
  
  



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

2001-05-03 Thread remm

remm01/05/03 19:01:13

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  - Correctly register repositories based on non file protocols.
  - That fixes class reloading, which before could only handle file based URLs.
  
  Revision  ChangesPath
  1.16  +70 -25
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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- StandardClassLoader.java  2001/04/25 04:14:47 1.15
  +++ StandardClassLoader.java  2001/05/04 02:01:13 1.16
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.15 2001/04/25 04:14:47 glenn Exp $
  - * $Revision: 1.15 $
  - * $Date: 2001/04/25 04:14:47 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.16 2001/05/04 02:01:13 remm Exp $
  + * $Revision: 1.16 $
  + * $Date: 2001/05/04 02:01:13 $
*
* 
*
  @@ -110,7 +110,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.15 $ $Date: 2001/04/25 04:14:47 $
  + * @version $Revision: 1.16 $ $Date: 2001/05/04 02:01:13 $
*/
   
   public class StandardClassLoader
  @@ -561,8 +561,8 @@
   return (true);
   }
   } else if (entries[i].origin instanceof URL) {
  +URL url = (URL) entries[i].origin;
   try {
  -URL url = (URL) entries[i].origin;
   URLConnection urlConn = url.openConnection();
   if (entries[i].lastModified != urlConn.getLastModified()) {
   if (debug >= 2)
  @@ -572,6 +572,7 @@
   return (true);
   }
   } catch (IOException e) {
  +log("Failed tracking modifications of '" + url + "'");
   }
   }
   }
  @@ -687,27 +688,71 @@
   repositories[i].substring(0, repositories[i].length() - 1);
if (debug >= 4)
log("  Checking repository " + pathname);
  -if (pathname.startsWith("file://"))
  -pathname = pathname.substring(7);
  -else if (pathname.startsWith("file:"))
  -pathname = pathname.substring(5);
  -pathname += File.separatorChar +
  -name.replace('.', File.separatorChar) + ".class";
  - try {
  -File file = new File(pathname);
  -if (file.exists() && file.canRead()) {
  -if (debug >= 3)
  -log("Caching from '" + file.getAbsolutePath() +
  +if ((pathname.startsWith("file://")) 
  +|| (pathname.startsWith("file:"))) {
  +
  +if (pathname.startsWith("file://")) {
  +pathname = pathname.substring(7);
  +} else if (pathname.startsWith("file:")) {
  +pathname = pathname.substring(5);
  +}
  +pathname += File.separatorChar 
  ++ name.replace('.', File.separatorChar) + ".class";
  +
  +try {
  +File file = new File(pathname);
  +if (file.exists() && file.canRead()) {
  +if (debug >= 3)
  +log("Caching from '" + file.getAbsolutePath() +
  +"' modified '" +
  +(new java.sql.Timestamp(file.lastModified())) +
  +"'");
  +classCache.put(name, new ClassCacheEntry
  +(clazz, file, file.lastModified()));
  +}
  +
  +} catch(AccessControlException ace) {
  +// Don't worry about caching the class last modified
  +// if ClassLoader doesn't have permission to read file
  +}
  +
  +} else {
  +
  +pathname += "/" + name.replace('.', '/') + ".class";
  +
  +try {
  +URLStreamHandler streamHandler = null;
  +String protocol = parseProtocol(pathname);
  +if (factory != null)
  +streamHandler = 
  +factory.createURLStreamHandler(protocol);
  + 

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

2001-04-24 Thread glenn

glenn   01/04/24 21:14:47

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  Java SecurityManager implementation changes
  ---
  
  Changed the naming convention for JNDI DirContextURL to
  "jndi:/hostname/webappname/" and "jar:jndi:/hostname/webappname/...".
  This works better with java.io.FilePermission.
  
  Modified how permissions are granted to the codeBase for a
  web application so that different permissions can be granted.
  Permissions assigned to the root of a web application apply
  to JSP pages.  Different permissions can be assigned to the
  /WEB-INF/classes/ directory, the /WEB-INF/lib/ directory,
  or even to individual jar files in /WEB-INF/lib/.  This allows
  much finer control of permissions granted within a web
  application.
  
  Fixed Jasper so that it uses the correct codeBase for a
  web application, it had been using the work dir instead
  of the context dir for getting permissions from the
  policy file.
  
  Added more default read FilePermissions for classes
  loaded from within a web application so that getResources()
  works. Added:
  
  "jndi:/hostname/webappname/-"
  "jar:jndi:/hostname/webappname/WEB-INF/lib/-"
  "file:/realcontextpath/-"
  
  Revision  ChangesPath
  1.15  +44 -48
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.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- StandardClassLoader.java  2001/04/21 07:02:20 1.14
  +++ StandardClassLoader.java  2001/04/25 04:14:47 1.15
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.14 2001/04/21 07:02:20 remm Exp $
  - * $Revision: 1.14 $
  - * $Date: 2001/04/21 07:02:20 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.15 2001/04/25 04:14:47 glenn Exp $
  + * $Revision: 1.15 $
  + * $Date: 2001/04/25 04:14:47 $
*
* 
*
  @@ -110,7 +110,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.14 $ $Date: 2001/04/21 07:02:20 $
  + * @version $Revision: 1.15 $ $Date: 2001/04/25 04:14:47 $
*/
   
   public class StandardClassLoader
  @@ -296,18 +296,17 @@
   
   
   /**
  - * The context directory path read FilePermission if this loader
  - * is for a web application context, and this web application is running
  - * from an unpacked directory.
  + * A list of read FilePermission's required if this loader
  + * is for a web application context.
*/
  -private FilePermission rootPermission = null;
  +private ArrayList filePermissionList = new ArrayList();
   
   
   /**
  - * The context directory URL read FilePermission if this loader
  - * is for a web application context.
  + * The PermissionCollection for each CodeSource for a web
  + * application context.
*/
  -private FilePermission urlPermission = null;
  +private HashMap loaderPC = new HashMap();
   
   
   /**
  @@ -317,6 +316,11 @@
   
   
   /**
  + * Flag that the security policy has been refreshed from file.
  + */
  +private boolean policy_refresh = false;
  +
  +/**
* The parent class loader.
*/
   private ClassLoader parent = null;
  @@ -382,47 +386,26 @@
   
   
   /**
  - * If there is a Java SecurityManager, refresh the security
  - * policies from file and set the context security permisions
  - * for the specified context root directory path
  + * If there is a Java SecurityManager create a read FilePermission
  + * for the file directory path.
*
  - * @param path Context directory root directory path
  + * @param path file directory path
*/
   public void setPermissions(String path) {
if( securityManager != null ) {
  -// System.out.println("setPermissionsPath: " + path);
  - String contextDir = path;
  - if( contextDir.endsWith(File.separator) )
  - contextDir = contextDir + "-";
  - else
  - contextDir = contextDir + File.separator + "-";
  - // Refresh the security policies
  - Policy policy = Policy.getPolicy();
  - policy.refresh();
  -rootPermission = new FilePermission(contextDir,"read");
  +filePermissionList.add(new FilePermission(path + "-","read"));
}
   }
   
   
   /**
  - * If there is a Java SecurityManager, refresh the sec

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

2001-04-20 Thread remm

remm01/04/21 00:02:21

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  - Manifest could be null, which raised a NPE. The fix I had put in before was 
incorrect.
Bug reported by Sun-Gu Park and Donnchadh Donnabhn
  
  Revision  ChangesPath
  1.14  +14 -12
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.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- StandardClassLoader.java  2001/04/07 23:08:45 1.13
  +++ StandardClassLoader.java  2001/04/21 07:02:20 1.14
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.13 2001/04/07 23:08:45 craigmcc Exp $
  - * $Revision: 1.13 $
  - * $Date: 2001/04/07 23:08:45 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.14 2001/04/21 07:02:20 remm Exp $
  + * $Revision: 1.14 $
  + * $Date: 2001/04/21 07:02:20 $
*
* 
*
  @@ -110,7 +110,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.13 $ $Date: 2001/04/07 23:08:45 $
  + * @version $Revision: 1.14 $ $Date: 2001/04/21 07:02:20 $
*/
   
   public class StandardClassLoader
  @@ -1169,14 +1169,16 @@
   if (!((manifest == null) && (jarFile == null))) {
   if ((manifest == null) && (jarFile != null))
   manifest = jarFile.getManifest();
  -Iterator extensions =
  -Extension.getAvailable(manifest).iterator();
  -while (extensions.hasNext())
  -available.add(extensions.next());
  -extensions =
  -Extension.getRequired(manifest).iterator();
  -while (extensions.hasNext())
  -required.add(extensions.next());
  +if (manifest != null) {
  +Iterator extensions =
  +Extension.getAvailable(manifest).iterator();
  +while (extensions.hasNext())
  +available.add(extensions.next());
  +extensions =
  +Extension.getRequired(manifest).iterator();
  +while (extensions.hasNext())
  +required.add(extensions.next());
  +}
   }
   if (jarFile != null)
   jarFile.close();
  
  
  



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

2001-04-07 Thread craigmcc

craigmcc01/04/07 16:08:45

  Modified:catalina/src/conf catalina.policy
   catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java StandardLoader.java
  Log:
  Tentative fix for Bugzilla #1219 so that execution under a security
  manager works as well.  Now, the default access to the context root of
  each web app is calculated dynamically, instead of being identical for
  each web app (although they resolved to different actual locations).
  
  Works on Linux + JDK 1.2.2, needs to be tested on other platforms.
  
  Revision  ChangesPath
  1.6   +1 -3  jakarta-tomcat-4.0/catalina/src/conf/catalina.policy
  
  Index: catalina.policy
  ===
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/conf/catalina.policy,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- catalina.policy   2001/02/27 03:18:15 1.5
  +++ catalina.policy   2001/04/07 23:08:45 1.6
  @@ -8,7 +8,7 @@
   //
   // * Read access to the document root directory
   //
  -// $Id: catalina.policy,v 1.5 2001/02/27 03:18:15 glenn Exp $
  +// $Id: catalina.policy,v 1.6 2001/04/07 23:08:45 craigmcc Exp $
   // 
   
   
  @@ -93,8 +93,6 @@
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
  - permission java.io.FilePermission "jndi:/WEB-INF/-", "read";
  - permission java.io.FilePermission "jar:jndi:/WEB-INF/lib/-", "read";
   };
   
   
  
  
  
  1.13  +54 -14
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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- StandardClassLoader.java  2001/03/06 01:43:46 1.12
  +++ StandardClassLoader.java  2001/04/07 23:08:45 1.13
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.12 2001/03/06 01:43:46 glenn Exp $
  - * $Revision: 1.12 $
  - * $Date: 2001/03/06 01:43:46 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.13 2001/04/07 23:08:45 craigmcc Exp $
  + * $Revision: 1.13 $
  + * $Date: 2001/04/07 23:08:45 $
*
* 
*
  @@ -110,7 +110,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.12 $ $Date: 2001/03/06 01:43:46 $
  + * @version $Revision: 1.13 $ $Date: 2001/04/07 23:08:45 $
*/
   
   public class StandardClassLoader
  @@ -296,19 +296,27 @@
   
   
   /**
  - * Instance of the SecurityManager installed.
  + * The context directory path read FilePermission if this loader
  + * is for a web application context, and this web application is running
  + * from an unpacked directory.
*/
  -private SecurityManager securityManager = null;
  +private FilePermission rootPermission = null;
   
   
   /**
  - * The context directory path read FilePermission if this loader
  + * The context directory URL read FilePermission if this loader
* is for a web application context.
*/
  -private FilePermission filePermission = null;
  +private FilePermission urlPermission = null;
   
   
   /**
  + * Instance of the SecurityManager installed.
  + */
  +private SecurityManager securityManager = null;
  +
  +
  +/**
* The parent class loader.
*/
   private ClassLoader parent = null;
  @@ -372,6 +380,30 @@
   
   }
   
  +
  +/**
  + * If there is a Java SecurityManager, refresh the security
  + * policies from file and set the context security permisions
  + * for the specified context root directory path
  + *
  + * @param path Context directory root directory path
  + */
  +public void setPermissions(String path) {
  + if( securityManager != null ) {
  +// System.out.println("setPermissionsPath: " + path);
  + String contextDir = path;
  + if( contextDir.endsWith(File.separator) )
  + contextDir = contextDir + "-";
  + else
  + contextDir = contextDir + File.separator + "-";
  + // Refresh the security policies
  + Policy policy = Policy.getPolicy();
  + policy.refresh();
  +rootPermission = new FilePermission(contextDir,"read");
  + }
  +}
  +
  +
  

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

2001-03-05 Thread glenn

glenn   01/03/05 17:43:47

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  Catch SecurityManager FilePermission AccessControlException
  
  Revision  ChangesPath
  1.12  +22 -13
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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- StandardClassLoader.java  2001/02/18 02:18:13 1.11
  +++ StandardClassLoader.java  2001/03/06 01:43:46 1.12
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.11 2001/02/18 02:18:13 craigmcc Exp $
  - * $Revision: 1.11 $
  - * $Date: 2001/02/18 02:18:13 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.12 2001/03/06 01:43:46 glenn Exp $
  + * $Revision: 1.12 $
  + * $Date: 2001/03/06 01:43:46 $
*
* 
*
  @@ -75,6 +75,7 @@
   import java.net.URLConnection;
   import java.net.URLStreamHandlerFactory;
   import java.net.URLStreamHandler;
  +import java.security.AccessControlException;
   import java.security.CodeSource;
   import java.security.PermissionCollection;
   import java.security.Policy;
  @@ -109,7 +110,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.11 $ $Date: 2001/02/18 02:18:13 $
  + * @version $Revision: 1.12 $ $Date: 2001/03/06 01:43:46 $
*/
   
   public class StandardClassLoader
  @@ -643,6 +644,8 @@
log("  super.findClass(" + name + ")");
try {
clazz = super.findClass(name);
  +} catch(AccessControlException ace) {
  + throw new ClassNotFoundException(name);
} catch (RuntimeException e) {
if (debug >= 4)
log("  -->RuntimeException Rethrown", e);
  @@ -673,15 +676,21 @@
   pathname = pathname.substring(5);
   pathname += File.separatorChar +
   name.replace('.', File.separatorChar) + ".class";
  -File file = new File(pathname);
  -if (file.exists() && file.canRead()) {
  -if (debug >= 3)
  -log("Caching from '" + file.getAbsolutePath() +
  -"' modified '" +
  -(new java.sql.Timestamp(file.lastModified())) + "'");
  -classCache.put(name, new ClassCacheEntry(clazz, file,
  - file.lastModified()));
  -}
  + try {
  +File file = new File(pathname);
  +if (file.exists() && file.canRead()) {
  +if (debug >= 3)
  +log("Caching from '" + file.getAbsolutePath() +
  +"' modified '" +
  +(new java.sql.Timestamp(file.lastModified())) +
  + "'");
  +classCache.put(name, new ClassCacheEntry(clazz, file,
  +   file.lastModified()));
  + }
  +} catch(AccessControlException ace) {
  + // Don't worry about caching the class last modified
  + // if ClassLoader doesn't have permission to read file
  + }
   }
   
   // Return the class we have located
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




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

2001-02-07 Thread craigmcc

craigmcc01/02/07 17:58:07

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  Add some additional debugging instrumentation to assist in locating the
  "package sealing violation" exception problem.
  
  Revision  ChangesPath
  1.10  +24 -6 
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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- StandardClassLoader.java  2001/02/04 00:50:40 1.9
  +++ StandardClassLoader.java  2001/02/08 01:58:06 1.10
  @@ -1,7 +1,7 @@
   /*
  - * $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 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.10 2001/02/08 01:58:06 craigmcc Exp $
  + * $Revision: 1.10 $
  + * $Date: 2001/02/08 01:58:06 $
*
* 
*
  @@ -109,7 +109,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.9 $ $Date: 2001/02/04 00:50:40 $
  + * @version $Revision: 1.10 $ $Date: 2001/02/08 01:58:06 $
*/
   
   public class StandardClassLoader
  @@ -620,8 +620,12 @@
   int i = name.lastIndexOf('.');
   if (i >= 0) {
   try {
  + if (debug >= 4)
  + log("  securityManager.checkPackageDefinition");
   securityManager.checkPackageDefinition(name.substring(0,i));
   } catch (Exception se) {
  + if (debug >= 4)
  + log("  -->Exception-->ClassNotFoundException", se);
throw new ClassNotFoundException(name);
   }
   }
  @@ -631,7 +635,15 @@
   // (throws ClassNotFoundException if it is not found)
   Class clazz = null;
   try {
  -clazz = super.findClass(name);
  + if (debug >= 4)
  + log("  super.findClass(" + name + ")");
  + try {
  + clazz = super.findClass(name);
  + } catch (RuntimeException e) {
  + if (debug >= 4)
  + log("  -->RuntimeException Rethrown", e);
  + throw e;
  + }
   if (clazz == null) {
   if (debug >= 3)
   log("--> Returning ClassNotFoundException");
  @@ -639,7 +651,7 @@
   }
   } catch (ClassNotFoundException e) {
   if (debug >= 3)
  -log("--> Passing on ClassNotFoundException");
  +log("--> Passing on ClassNotFoundException", e);
   throw e;
   }
   
  @@ -649,6 +661,8 @@
   continue;
   String pathname =
   repositories[i].substring(0, repositories[i].length() - 1);
  + if (debug >= 4)
  + log("  Checking repository " + pathname);
   if (pathname.startsWith("file://"))
   pathname = pathname.substring(7);
   else if (pathname.startsWith("file:"))
  @@ -667,6 +681,10 @@
   }
   
   // Return the class we have located
  + if (debug >= 4)
  + log("  Returning class " + clazz);
  + if ((debug >= 4) && (clazz != null))
  + log("  Loaded by " + clazz.getClassLoader());
   return (clazz);
   
   }
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




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

2001-02-03 Thread glenn

glenn   01/02/03 16:50:40

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  Implement SecurityManager
  
  Revision  ChangesPath
  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);
   }
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]




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

2001-01-23 Thread glenn

glenn   01/01/23 14:13:09

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  Implement SecurityManager
  
  Revision  ChangesPath
  1.8   +179 -281  
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.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- StandardClassLoader.java  2001/01/23 05:05:48 1.7
  +++ StandardClassLoader.java  2001/01/23 22:13:06 1.8
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.7 2001/01/23 05:05:48 remm Exp $
  - * $Revision: 1.7 $
  - * $Date: 2001/01/23 05:05:48 $
  + * $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 $
*
* 
*
  @@ -65,6 +65,7 @@
   package org.apache.catalina.loader;
   
   import java.io.File;
  +import java.io.FilePermission;
   import java.io.InputStream;
   import java.io.IOException;
   import java.net.JarURLConnection;
  @@ -74,6 +75,9 @@
   import java.net.URLConnection;
   import java.net.URLStreamHandlerFactory;
   import java.net.URLStreamHandler;
  +import java.security.CodeSource;
  +import java.security.PermissionCollection;
  +import java.security.Policy;
   import java.util.ArrayList;
   import java.util.Enumeration;
   import java.util.HashMap;
  @@ -105,7 +109,7 @@
*
* @author Craig R. McClanahan
* @author Remy Maucherat
  - * @version $Revision: 1.7 $ $Date: 2001/01/23 05:05:48 $
  + * @version $Revision: 1.8 $ $Date: 2001/01/23 22:13:06 $
*/
   
   public class StandardClassLoader
  @@ -123,6 +127,9 @@
   public StandardClassLoader() {
   
   super(new URL[0]);
  + this.parent = getParent();
  + this.system = getSystemClassLoader();
  + securityManager = System.getSecurityManager();
   
   }
   
  @@ -150,6 +157,9 @@
   public StandardClassLoader(ClassLoader parent) {
   
   super((new URL[0]), parent);
  + this.parent = parent;
  + this.system = getSystemClassLoader();
  + securityManager = System.getSecurityManager();
   
   }
   
  @@ -179,6 +189,9 @@
   public StandardClassLoader(String repositories[]) {
   
   super(convert(repositories));
  + this.parent = getParent();
  + this.system = getSystemClassLoader();
  + securityManager = System.getSecurityManager();
   if (repositories != null) {
   for (int i = 0; i < repositories.length; i++)
   addRepositoryInternal(repositories[i]);
  @@ -197,6 +210,9 @@
   public StandardClassLoader(String repositories[], ClassLoader parent) {
   
   super(convert(repositories), parent);
  + this.parent = parent;
  + this.system = getSystemClassLoader();
  + securityManager = System.getSecurityManager();
   if (repositories != null) {
   for (int i = 0; i < repositories.length; i++)
   addRepositoryInternal(repositories[i]);
  @@ -215,6 +231,9 @@
   public StandardClassLoader(URL repositories[], ClassLoader parent) {
   
   super(repositories, parent);
  + this.parent = parent;
  + this.system = getSystemClassLoader();
  + securityManager = System.getSecurityManager();
   if (repositories != null) {
   for (int i = 0; i < repositories.length; i++)
   addRepositoryInternal(repositories[i].toString());
  @@ -227,14 +246,6 @@
   
   
   /**
  - * The set of fully qualified class or resource names to which access
  - * will be allowed (if they exist) by this class loader, even if the
  - * class or resource name would normally be restricted.
  - */
  -protected String allowed[] = new String[0];
  -
  -
  -/**
* The set of optional packages (formerly standard extensions) that
* are available in the repositories associated with this class loader.
* Each object in this list is of type
  @@ -283,23 +294,32 @@
   protected ArrayList required = new ArrayList();
   
   
  +/**
  + * Instance of the SecurityManager installed.
  + */
  +private SecurityManager securityManager = null;
  +
  +
   /**
  - * The set of class name prefixes to which access should be restricted.
  - * A request for a class or resource that starts with this prefix will
  - * fail with an appropriate exception or null return value,
  - * unless that specific class or resource name is on the allowed list.
 

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

2001-01-17 Thread remm

remm01/01/17 07:33:46

  Modified:catalina/src/share/org/apache/catalina/loader
StandardClassLoader.java
  Log:
  - Add a null check for the manifest file when loading a JAR file.
A similar patch has already been applied in TC 4.1 for different reasons.
Patch submitted by Donnchadh Ó Donnabháin <[EMAIL PROTECTED]>
  
  Revision  ChangesPath
  1.6   +14 -12
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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- StandardClassLoader.java  2000/10/09 21:04:02 1.5
  +++ StandardClassLoader.java  2001/01/17 15:33:46 1.6
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.5 2000/10/09 21:04:02 craigmcc Exp $
  - * $Revision: 1.5 $
  - * $Date: 2000/10/09 21:04:02 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/StandardClassLoader.java,v
 1.6 2001/01/17 15:33:46 remm Exp $
  + * $Revision: 1.6 $
  + * $Date: 2001/01/17 15:33:46 $
*
* 
*
  @@ -99,7 +99,7 @@
* independently.
*
* @author Craig R. McClanahan
  - * @version $Revision: 1.5 $ $Date: 2000/10/09 21:04:02 $
  + * @version $Revision: 1.6 $ $Date: 2001/01/17 15:33:46 $
*/
   
   public class StandardClassLoader
  @@ -1060,14 +1060,16 @@
repository + "'");
   }
   Manifest manifest = jarFile.getManifest();
  -Iterator extensions =
  -Extension.getAvailable(manifest).iterator();
  -while (extensions.hasNext())
  -available.add(extensions.next());
  -extensions =
  -Extension.getRequired(manifest).iterator();
  -while (extensions.hasNext())
  -required.add(extensions.next());
  +if (manifest != null) {
  +Iterator extensions =
  +Extension.getAvailable(manifest).iterator();
  +while (extensions.hasNext())
  +available.add(extensions.next());
  +extensions =
  +Extension.getRequired(manifest).iterator();
  +while (extensions.hasNext())
  +required.add(extensions.next());
  +}
   jarFile.close();
   } catch (Throwable t) {
   throw new IllegalArgumentException("addRepositoryInternal: " + t);
  
  
  

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]