remm 01/06/23 18:16:07
Modified: catalina/src/share/org/apache/catalina/loader
WebappClassLoader.java
Log:
- The call to findResourceInternal should be wrapped in a privileged action.
Bug reported by Craig R. McClanahan
Revision Changes Path
1.6 +15 -6
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.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- WebappClassLoader.java 2001/06/23 22:38:03 1.5
+++ WebappClassLoader.java 2001/06/24 01:16:06 1.6
@@ -1,7 +1,7 @@
/*
- * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
1.5 2001/06/23 22:38:03 remm Exp $
- * $Revision: 1.5 $
- * $Date: 2001/06/23 22:38:03 $
+ * $Header:
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/loader/WebappClassLoader.java,v
1.6 2001/06/24 01:16:06 remm Exp $
+ * $Revision: 1.6 $
+ * $Date: 2001/06/24 01:16:06 $
*
* ====================================================================
*
@@ -124,7 +124,7 @@
*
* @author Remy Maucherat
* @author Craig R. McClanahan
- * @version $Revision: 1.5 $ $Date: 2001/06/23 22:38:03 $
+ * @version $Revision: 1.6 $ $Date: 2001/06/24 01:16:06 $
*/
public class WebappClassLoader
extends URLClassLoader
@@ -840,7 +840,7 @@
*
* @param name Name of the resource to be found
*/
- public URL findResource(String name) {
+ public URL findResource(final String name) {
if (debug >= 3)
log(" findResource(" + name + ")");
@@ -849,7 +849,16 @@
ResourceEntry entry = (ResourceEntry) resourceEntries.get(name);
if (entry == null) {
- entry = findResourceInternal(name, name);
+ if (securityManager != null) {
+ entry = (ResourceEntry) AccessController.doPrivileged
+ (new PrivilegedAction() {
+ public Object run() {
+ return findResourceInternal(name, name);
+ }
+ }, accessController);
+ } else {
+ entry = findResourceInternal(name, name);
+ }
}
if (entry != null) {
url = entry.source;