[jboss-svn-commits] JBL Code SVN: r7643 - labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Nov 16 10:16:27 EST 2006
Author: tirelli
Date: 2006-11-16 10:16:24 -0500 (Thu, 16 Nov 2006)
New Revision: 7643
Modified:
labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
Log:
JBRULES-562: Setting the protection domain when creating field accessors
Modified: labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
===================================================================
--- labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java 2006-11-16 14:12:57 UTC (rev 7642)
+++ labs/jbossrules/branches/3.0.x/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java 2006-11-16 15:16:24 UTC (rev 7643)
@@ -18,6 +18,9 @@
import java.beans.IntrospectionException;
import java.lang.reflect.Method;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.ProtectionDomain;
import org.drools.RuntimeDroolsException;
import org.drools.asm.ClassWriter;
@@ -37,15 +40,21 @@
public class ClassFieldExtractorFactory {
- private static final String GETTER = "get";
-
- private static final String BOOLEAN_GETTER = "is";
-
private static final String BASE_PACKAGE = "org/drools/base";
private static final String BASE_EXTRACTOR = "org/drools/base/BaseClassFieldExtractor";
+
+ private static final ProtectionDomain PROTECTION_DOMAIN;
- public static BaseClassFieldExtractor getClassFieldExtractor(final Class clazz,
+ static {
+ PROTECTION_DOMAIN = (ProtectionDomain) AccessController.doPrivileged( new PrivilegedAction() {
+ public Object run() {
+ return ClassFieldExtractorFactory.class.getProtectionDomain();
+ }
+ } );
+ }
+
+ public static BaseClassFieldExtractor getClassFieldExtractor(final Class clazz,
final String fieldName) {
try {
final ClassFieldInspector inspector = new ClassFieldInspector( clazz );
@@ -70,7 +79,8 @@
final ByteArrayClassLoader classLoader = new ByteArrayClassLoader( parent );
final Class newClass = classLoader.defineClass( className.replace( '/',
'.' ),
- bytes );
+ bytes,
+ PROTECTION_DOMAIN);
// instantiating target class
final Object[] params = {clazz, fieldName};
return (BaseClassFieldExtractor) newClass.getConstructors()[0].newInstance( params );
@@ -352,11 +362,13 @@
}
public Class defineClass(final String name,
- final byte[] bytes) {
+ final byte[] bytes,
+ ProtectionDomain domain) {
return defineClass( name,
bytes,
0,
- bytes.length );
+ bytes.length,
+ domain);
}
}
}
\ No newline at end of file
More information about the jboss-svn-commits
mailing list