Community

Issues using Javassist TypeInfoFactory in other projects

reply from Kabir Khan in JBoss Microcontainer Development - View the full discussion

ANIL SALDHANA wrote:

 

I would probably start here:

=================================

on: access denied (java.lang.RuntimePermission accessClassInPackage.sun.reflect)

at org.jboss.reflect.plugins.javassist.bytecode.JavassistMemberFactory.makeClass(JavassistMemberFactory.java:296)

at

======================

 

Place a privileged block.

That line is just a rethrow from a catch block:

 

         final ClassLoader cl = target.getClassPool().getClassLoader();
 
         return AccessController.doPrivileged(new PrivilegedExceptionAction<Class<T>>() //Line 281
         {
            public Class<T> run() throws Exception
            {
               return FactoryHelper.toClass(cf, cl); //Line 285
            }
         });
 
      }
      catch(RuntimeException e)
      {
         throw e;
      }
      catch (Exception e)
      {
         throw new RuntimeException(e); //Line 296
      }
   }

 

the real work is done here:

 

Caused by: java.security.PrivilegedActionException: javassist.CannotCompileException: by java.security.AccessControlException: access denied

(java.lang.RuntimePermission accessClassInPackage.sun.reflect)

at java.security.AccessController.doPrivileged(Native Method)

at org.jboss.reflect.plugins.javassist.bytecode.JavassistMemberFactory.makeClass(JavassistMemberFactory.java:281)

... 55 more

Caused by: javassist.CannotCompileException: by java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClass

InPackage.sun.reflect)

at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:169)

at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:136)

at org.jboss.reflect.plugins.javassist.bytecode.JavassistMemberFactory$1.run(JavassistMemberFactory.java:285)

at org.jboss.reflect.plugins.javassist.bytecode.JavassistMemberFactory$1.run(JavassistMemberFactory.java:1)

<SNIP/>

Caused by: java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.reflect)

at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)

at java.security.AccessController.checkPermission(AccessController.java:546)

at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)

at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1512)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:327)

at java.lang.ClassLoader.loadClass(ClassLoader.java:250)

at org.jboss.test.classloading.vfs.VFSClassLoader.loadClass(VFSClassLoader.java:55)   <---

at java.lang.ClassLoader.loadClass(ClassLoader.java:250)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:398)

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:698)

at java.lang.ClassLoader.defineClass(ClassLoader.java:544)

at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at javassist.util.proxy.SecurityActions$6.run(SecurityActions.java:124)

at java.security.AccessController.doPrivileged(Native Method)

at javassist.util.proxy.SecurityActions.invokeMethod(SecurityActions.java:121)

at javassist.util.proxy.FactoryHelper.toClass2(FactoryHelper.java:182)

at javassist.util.proxy.FactoryHelper.toClass(FactoryHelper.java:163)

 

I'm not 100% sure, but the marked line would probably be the right place to put it, however that might be a security violation?

Reply to this message by going to Community

Start a new discussion in JBoss Microcontainer Development at Community