Author: kkolinko
Date: Mon Nov 9 14:29:55 2009
New Revision: 834080
URL: http://svn.apache.org/viewvc?rev=834080&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=48097
Patch by Mark Thomas.
Modified:
tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?rev=834080&r1=834079&r2=834080&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java
(original)
+++ tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java Mon Nov
9 14:29:55 2009
@@ -131,6 +131,23 @@
}
+ protected class PrivilegedFindResourceByName
+ implements PrivilegedAction<ResourceEntry> {
+
+ protected String name;
+ protected String path;
+
+ PrivilegedFindResourceByName(String name, String path) {
+ this.name = name;
+ this.path = path;
+ }
+
+ public ResourceEntry run() {
+ return findResourceInternal(name, path);
+ }
+
+ }
+
protected final class PrivilegedGetClassLoader
implements PrivilegedAction<ClassLoader> {
@@ -973,7 +990,13 @@
ResourceEntry entry = resourceEntries.get(name);
if (entry == null) {
- entry = findResourceInternal(name, name);
+ if (securityManager != null) {
+ PrivilegedAction<ResourceEntry> dp =
+ new PrivilegedFindResourceByName(name, name);
+ entry = AccessController.doPrivileged(dp);
+ } else {
+ entry = findResourceInternal(name, name);
+ }
}
if (entry != null) {
url = entry.source;
@@ -1874,7 +1897,13 @@
ResourceEntry entry = null;
- entry = findResourceInternal(name, classPath);
+ if (securityManager != null) {
+ PrivilegedAction<ResourceEntry> dp =
+ new PrivilegedFindResourceByName(name, classPath);
+ entry = AccessController.doPrivileged(dp);
+ } else {
+ entry = findResourceInternal(name, classPath);
+ }
if (entry == null)
throw new ClassNotFoundException(name);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]