[Logo] Terracotta Discussion Forums (LEGACY READ-ONLY ARCHIVE)
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
[Expert]
Ehcache requires all permisions?  XML
Forum Index -> Ehcache
Author Message
sswf

neo

Joined: 07/31/2012 12:52:29
Messages: 4
Offline

Hello,

I'm trying to add Ehcache to Java app that uses security policy. It worked ok for local cache but when I tried to add cluster support I got a problem.
I added terracotta tag to ehcache.xml and run terracotta. Then each time I started the app error log asked me to add some permision to security.policy. Finally I got following exception:
Code:
 10:19:27.333 INFO TerracottaClient     Thread [main] [cacheManager: no name]: Creating new ClusteredInstanceFactory
 Server exception: net.sf.ehcache.CacheException: Unable to load class net.sf.ehcache.terracotta.StandaloneTerracottaClusteredInstanceFactory. Initial cause was java.security.AccessControlException: access denied ("java.security.AllPermission" "<all permissions>" "<all actions>")
 net.sf.ehcache.CacheException: Unable to load class net.sf.ehcache.terracotta.StandaloneTerracottaClusteredInstanceFactory. Initial cause was java.security.AccessControlException: access denied ("java.security.AllPermission" "<all permissions>" "<all actions>")
         at net.sf.ehcache.util.ClassLoaderUtil.createNewInstance(ClassLoaderUtil.java:109)
         at net.sf.ehcache.terracotta.TerracottaClusteredInstanceHelper.newClusteredInstanceFactory(TerracottaClusteredInstanceHelper.java:176)
         at net.sf.ehcache.terracotta.TerracottaClient.createNewClusteredInstanceFactory(TerracottaClient.java:186)
         at net.sf.ehcache.terracotta.TerracottaClient.createClusteredInstanceFactory(TerracottaClient.java:138)
         at net.sf.ehcache.CacheManager.doInit(CacheManager.java:424)
         at net.sf.ehcache.CacheManager.init(CacheManager.java:374)
         at net.sf.ehcache.CacheManager.<init>(CacheManager.java:356)
         {my code}
 Caused by: java.lang.RuntimeException: java.security.AccessControlException: access denied ("java.security.AllPermission" "<all permissions>" "<all actions>")
         at com.terracotta.express.ClientImpl.<init>(ClientImpl.java:378)
         at com.terracotta.express.ClientFactoryImpl.newClient(ClientFactoryImpl.java:286)
         at com.terracotta.express.ClientFactoryImpl.createClient(ClientFactoryImpl.java:279)
         at com.terracotta.express.ClientFactoryImpl.createClient(ClientFactoryImpl.java:266)
         at com.terracotta.express.ClientFactoryImpl.getOrCreateClient(ClientFactoryImpl.java:203)
         at org.terracotta.express.ClientFactory.getOrCreateClient(ClientFactory.java:30)
         at net.sf.ehcache.terracotta.StandaloneTerracottaClusteredInstanceFactory.<init>(StandaloneTerracottaClusteredInstanceFactory.java:37)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
         at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
         at net.sf.ehcache.util.ClassLoaderUtil.createNewInstance(ClassLoaderUtil.java:92)
         ... 12 more
 Caused by: java.security.AccessControlException: access denied ("java.security.AllPermission" "<all permissions>" "<all actions>")
         at java.security.AccessControlContext.checkPermission(AccessControlContext.java:366)
         at java.security.AccessController.checkPermission(AccessController.java:555)
         at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
         at java.net.URLClassLoader$4.run(URLClassLoader.java:690)
         at java.net.URLClassLoader$4.run(URLClassLoader.java:688)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.getPermissions(URLClassLoader.java:688)
         at java.security.SecureClassLoader.getProtectionDomain(SecureClassLoader.java:206)
         at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
         at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
         at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
         at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
         at com.terracotta.express.L1Loader.findClass(L1Loader.java:32)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
         at java.lang.Class.getDeclaredConstructors0(Native Method)
         at java.lang.Class.privateGetDeclaredConstructors(Class.java:2404)
         at java.lang.Class.getConstructor0(Class.java:2714)
         at java.lang.Class.getConstructor(Class.java:1674)
         at com.terracotta.express.ClientImpl.<init>(ClientImpl.java:355)
         ... 23 more
 


Why do it need all permissions? How to avoid granting all permissions?
rajoshi

seraphim

Joined: 07/04/2011 04:36:10
Messages: 1491
Offline

Hi,

can you please provide details about your set up , which version you are using and your terracotta client and server logs .

Rakesh Joshi
Senior Consultant
Terracotta.
sswf

neo

Joined: 07/31/2012 12:52:29
Messages: 4
Offline

Hello,

I use installation of terracotta-3.7.0-installer.jar I took jars from its directory:
ehcache-core-2.6.0.jar
ehcache-terracotta-2.6.0.jar
terracotta-toolkit-1.6-runtime-5.0.0.jar
and slf jars

I'm sorry I could not find something interesting in server logs. Interesting thing is that I added all permisions, run the app and now removed permissions, but the app is able to run so it looks like it needed to do something only once.
ericm

jedi

Joined: 01/27/2011 17:23:34
Messages: 117
Offline

This might be related to having permissions to create a socket to Terracotta. Make sure your application can create sockets.

I hope this helps.

Eric Mizell (Terracotta Engineer)
sswf

neo

Joined: 07/31/2012 12:52:29
Messages: 4
Offline

Yes it works now. Thank you!
 
Forum Index -> Ehcache
Go to:   
Powered by JForum 2.1.7 © JForum Team