[jboss-svn-commits] JBL Code SVN: r7646 - labs/jbossrules/trunk/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:24:01 EST 2006
Author: tirelli
Date: 2006-11-16 10:23:58 -0500 (Thu, 16 Nov 2006)
New Revision: 7646
Modified:
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
Log:
JBRULES-562: Setting the protection domain when creating field accessors
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java 2006-11-16 15:19:33 UTC (rev 7645)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/base/ClassFieldExtractorFactory.java 2006-11-16 15:23:58 UTC (rev 7646)
@@ -17,6 +17,9 @@
*/
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;
@@ -48,6 +51,16 @@
private static final String BASE_PACKAGE = "org/drools/base";
+ private static final ProtectionDomain PROTECTION_DOMAIN;
+
+ 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 {
@@ -66,7 +79,8 @@
final ByteArrayClassLoader classLoader = new ByteArrayClassLoader( Thread.currentThread().getContextClassLoader() );
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 );
@@ -324,11 +338,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