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