To run Groovy scripts in a sandbox perform following steps:
The following example shows the permissions to be assigned:
grant codeBase "file:/m2mlabs/scripts" { // this permission is required to execute the scripts permission java.lang.RuntimePermission "getClassLoader"; };
grant codeBase "file:${com.sun.aas.instanceRoot}/applications/mainspring-ear-0.9/-" { permission java.lang.RuntimePermission "getProtectionDomain"; permission javax.management.MBeanTrustPermission "register"; permission java.util.PropertyPermission "*", "read,write"; permission java.io.FilePermission "<<ALL FILES>>", "read,write"; permission java.lang.RuntimePermission "modifyThreadGroup"; permission java.lang.RuntimePermission "getClassLoader"; permission java.lang.RuntimePermission "setContextClassLoader"; permission java.net.SocketPermission "*", "connect"; permission javax.management.MBeanPermission "[com.sun.messaging.jms.*:*]", "*"; //needed by URLClassloader.close() on JDK7 permission java.lang.RuntimePermission "closeClassLoader"; // for Groovy permission java.lang.RuntimePermission "createClassLoader"; permission groovy.security.GroovyCodeSourcePermission "/m2mlabs/scripts"; // for cassandra permission javax.management.MBeanServerPermission "createMBeanServer"; permission javax.management.MBeanPermission "me.prettyprint.cassandra.service.CassandraClientMonitor", "registerMBean"; permission java.net.SocketPermission "localhost:1024-", "accept,listen,resolve"; permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; permission java.lang.RuntimePermission "accessDeclaredMembers"; permission org.osgi.framework.AdminPermission "resolve,resource"; permission java.lang.RuntimePermission, "accessClassInPackage.com.sun.proxy"; }; grant { permission java.util.PropertyPermission "SERVER_TIMEZONE", "read"; };