I have already postet to users list but now I thing its a general problem.

If you read my other post ignore the tomcat embedded stuff.

I have a main class that starts openejb via LocalInitialContextFactory and
looks up a local bean.

Properties properties = new Properties();
        properties.setProperty(Context.INITIAL_CONTEXT_FACTORY,
"org.apache.openejb.client.LocalInitialContextFactory");
        properties.setProperty("openejb.configuration",
openejbBaseDir+"\\conf\\openejb.xml");
        properties.setProperty("openejb.home", openejbBaseDir);
        InitialContext localContext =  new InitialContext(properties);
        
        UserService test2 = (UserService)
localContext.lookup("UserServiceBeanLocal");


If I start this class with:
java OpenEJBStarter it works.

If I add a java.security file (policy.all) with:
grant { 
   permission java.security.AllPermission;
};

and starts with
java -Djava.security.manager -Djava.security.policy="E:\pointTo\policy.all"
-Djava.security.debug=access,failure OpenEJBStarter

I get a PermissionException. Check out the security.debug output:
access: access allowed (javax.security.jacc.EJBMethodPermission
UserServiceBean create,LocalHome,)
access: access denied (java.lang.RuntimePermission setContextClassLoader)
java.lang.Exception: Stack trace
        at java.lang.Thread.dumpStack(Thread.java:1206)
        at
java.security.AccessControlContext.checkPermission(AccessControlContext.java:313)
        at
java.security.AccessController.checkPermission(AccessController.java:546)
        at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
        at java.lang.Thread.setContextClassLoader(Thread.java:1351)
        at org.apache.openejb.core.ThreadContext.exit(ThreadContext.java:70)
        at
org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:186)
        at
org.apache.openejb.core.ivm.EjbHomeProxyHandler.create(EjbHomeProxyHandler.java:284)
        at
org.apache.openejb.core.ivm.EjbHomeProxyHandler._invoke(EjbHomeProxyHandler.java:169)
        at
org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:282)
        at $Proxy21.create(Unknown Source)
        at
org.apache.openejb.core.ivm.naming.BusinessLocalReference.getObject(BusinessLocalReference.java:33)
        at
org.apache.openejb.core.ivm.naming.IvmContext.lookup(IvmContext.java:171)
        at
org.apache.openejb.core.ivm.naming.ContextWrapper.lookup(ContextWrapper.java:115)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)
        at com.nedap.openejb.OpenEJBStarter.startIt(OpenEJBStarter.java:73)
        at com.nedap.openejb.OpenEJBStarter.main(OpenEJBStarter.java:32)


What is wrong here? Or is it a bug?



--
View this message in context: 
http://openejb.979440.n4.nabble.com/java-lang-RuntimePermission-setContextClassLoader-if-using-java-security-tp3599454p3599454.html
Sent from the OpenEJB Dev mailing list archive at Nabble.com.

Reply via email to