You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by yi...@apache.org on 2010/04/21 21:46:47 UTC
svn commit: r936468 - in /openwebbeans/trunk:
webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
webbeans-tomcat6/src/main/java/org/apache/webbeans/web/tomcat/ContextLifecycleListener.java
Author: yingwang
Date: Wed Apr 21 19:46:46 2010
New Revision: 936468
URL: http://svn.apache.org/viewvc?rev=936468&view=rev
Log:
[OWB-312] missing 2 files.
Modified:
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
openwebbeans/trunk/webbeans-tomcat6/src/main/java/org/apache/webbeans/web/tomcat/ContextLifecycleListener.java
Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java?rev=936468&r1=936467&r2=936468&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/JavassistProxyFactory.java Wed Apr 21 19:46:46 2010
@@ -86,7 +86,7 @@ public final class JavassistProxyFactory
}
else
{
- clazz = factory.createClass();
+ clazz = SecurityUtil.doPrivilegedCreateClass(factory);
ejbProxyClasses.put(bean, clazz);
}
Modified: openwebbeans/trunk/webbeans-tomcat6/src/main/java/org/apache/webbeans/web/tomcat/ContextLifecycleListener.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-tomcat6/src/main/java/org/apache/webbeans/web/tomcat/ContextLifecycleListener.java?rev=936468&r1=936467&r2=936468&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-tomcat6/src/main/java/org/apache/webbeans/web/tomcat/ContextLifecycleListener.java (original)
+++ openwebbeans/trunk/webbeans-tomcat6/src/main/java/org/apache/webbeans/web/tomcat/ContextLifecycleListener.java Wed Apr 21 19:46:46 2010
@@ -34,8 +34,11 @@ import org.apache.naming.ContextAccessCo
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Field;
import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
@@ -360,8 +363,8 @@ public class ContextLifecycleListener im
{
try
{
- Field field = ContainerBase.class.getDeclaredField("children");
- field.setAccessible(true);
+ Field field = (Field)AccessController.doPrivileged(new PrivilegedActionForClass(ContainerBase.class, "children"));
+ AccessController.doPrivileged(new PrivilegedActionForAccessibleObject(field, true));
Map<Object,Object> children = (Map<Object,Object>) field.get(containerBase);
if (children instanceof ContextLifecycleListener.MoniterableHashMap)
{
@@ -409,4 +412,52 @@ public class ContextLifecycleListener im
return value;
}
}
+
+ protected static class PrivilegedActionForAccessibleObject implements PrivilegedAction<Object>
+ {
+
+ AccessibleObject object;
+
+ boolean flag;
+
+ protected PrivilegedActionForAccessibleObject(AccessibleObject object, boolean flag)
+ {
+ this.object = object;
+ this.flag = flag;
+ }
+
+ public Object run()
+ {
+ object.setAccessible(flag);
+ return null;
+ }
+ }
+
+ protected static class PrivilegedActionForClass implements PrivilegedAction<Object>
+ {
+ Class<?> clazz;
+
+ Object parameters;
+
+ protected PrivilegedActionForClass(Class<?> clazz, Object parameters)
+ {
+ this.clazz = clazz;
+ this.parameters = parameters;
+ }
+
+ public Object run()
+ {
+ try
+ {
+ return clazz.getDeclaredField((String)parameters);
+ }
+ catch (Exception exception)
+ {
+ return exception;
+ }
+ }
+
+ }
+
+
}