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";
};