svn commit: r721704 - in /tomcat/trunk/java/org/apache: catalina/core/DefaultInstanceManager.java catalina/security/SecurityClassLoad.java jasper/runtime/JspApplicationContextImpl.java

2008-11-29 Thread markt
Author: markt
Date: Sat Nov 29 11:01:57 2008
New Revision: 721704

URL: http://svn.apache.org/viewvc?rev=721704&view=rev
Log:
Fix some TCK failures when using a security manager.

Modified:
tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java
tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java
tomcat/trunk/java/org/apache/jasper/runtime/JspApplicationContextImpl.java

Modified: tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java?rev=721704&r1=721703&r2=721704&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/core/DefaultInstanceManager.java Sat 
Nov 29 11:01:57 2008
@@ -205,14 +205,24 @@
  * @throws java.lang.reflect.InvocationTargetException
  *if call fails
  */
-protected void preDestroy(Object instance, Class clazz)
+protected void preDestroy(Object instance, final Class clazz)
 throws IllegalAccessException, InvocationTargetException {
 Class superClass = clazz.getSuperclass();
 if (superClass != Object.class) {
 preDestroy(instance, superClass);
 }
 
-Method[] methods = clazz.getDeclaredMethods();
+Method[] methods;
+if (Globals.IS_SECURITY_ENABLED) {
+methods = AccessController.doPrivileged(
+new PrivilegedAction(){
+public Method[] run(){
+return clazz.getDeclaredMethods();
+}
+});
+} else {
+methods = clazz.getDeclaredMethods();
+}
 Method preDestroy = null;
 for (Method method : methods) {
 if (method.isAnnotationPresent(PreDestroy.class)) {

Modified: tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java?rev=721704&r1=721703&r2=721704&view=diff
==
--- tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/security/SecurityClassLoad.java Sat 
Nov 29 11:01:57 2008
@@ -64,6 +64,21 @@
  "core.ContainerBase$PrivilegedAddChild");
 loader.loadClass
 (basePackage +
+ "core.DefaultInstanceManager$1");
+loader.loadClass
+(basePackage +
+ "core.DefaultInstanceManager$2");
+loader.loadClass
+(basePackage +
+ "core.DefaultInstanceManager$3");
+loader.loadClass
+(basePackage +
+ "core.DefaultInstanceManager$4");
+loader.loadClass
+(basePackage +
+ "core.DefaultInstanceManager$5");
+loader.loadClass
+(basePackage +
  "core.ApplicationHttpRequest$AttributeNamesEnumerator");
 }
 

Modified: 
tomcat/trunk/java/org/apache/jasper/runtime/JspApplicationContextImpl.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jasper/runtime/JspApplicationContextImpl.java?rev=721704&r1=721703&r2=721704&view=diff
==
--- tomcat/trunk/java/org/apache/jasper/runtime/JspApplicationContextImpl.java 
(original)
+++ tomcat/trunk/java/org/apache/jasper/runtime/JspApplicationContextImpl.java 
Sat Nov 29 11:01:57 2008
@@ -16,6 +16,8 @@
  */
 package org.apache.jasper.runtime;
 
+import java.security.AccessController;
+import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -37,6 +39,7 @@
 import javax.servlet.jsp.el.ScopedAttributeELResolver;
 
 import org.apache.el.ExpressionFactoryImpl;
+import org.apache.jasper.Constants;
 import org.apache.jasper.el.ELContextImpl;
 
 /**
@@ -88,8 +91,18 @@
}
 
// create ELContext for JspContext
-   ELResolver r = this.createELResolver();
-   ELContextImpl ctx = new ELContextImpl(r);
+   final ELResolver r = this.createELResolver();
+   ELContextImpl ctx;
+   if (Constants.IS_SECURITY_ENABLED) {
+   ctx = AccessController.doPrivileged(
+   new PrivilegedAction() {
+   public ELContextImpl run() {
+   return new ELContextImpl(r);
+   }
+   });
+   } else {
+   ctx = new ELContextImpl(r);
+   }
ctx.putContext(JspContext.class, context);
 
// alert all ELContextLis

svn commit: r721708 - /tomcat/trunk/conf/catalina.policy

2008-11-29 Thread markt
Author: markt
Date: Sat Nov 29 12:20:06 2008
New Revision: 721708

URL: http://svn.apache.org/viewvc?rev=721708&view=rev
Log:
Lots of EL failures with a security manager without this.

Modified:
tomcat/trunk/conf/catalina.policy

Modified: tomcat/trunk/conf/catalina.policy
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/conf/catalina.policy?rev=721708&r1=721707&r2=721708&view=diff
==
--- tomcat/trunk/conf/catalina.policy (original)
+++ tomcat/trunk/conf/catalina.policy Sat Nov 29 12:20:06 2008
@@ -138,9 +138,9 @@
 permission java.lang.RuntimePermission 
"accessClassInPackage.org.apache.jasper.runtime";
 permission java.lang.RuntimePermission 
"accessClassInPackage.org.apache.jasper.runtime.*";
 
-// Precompiled JSPs need access to this system property.
+// Precompiled JSPs need access to these system properties.
 permission java.util.PropertyPermission 
"org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read";
-
+permission java.util.PropertyPermission 
"org.apache.el.parser.COERCE_TO_ZERO", "read";
 };
 
 



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