blob: 83a0ff257b1d3929cb785ab57a224513dca5e1a5 [file] [log] [blame]
//
// Security policy for running Apache SIS in a security-constrained environment.
// The first grant block below contains the permissions that are most likely to
// be needed for SIS use. Other grant blocks contain permissions needed only if
// the JavaDB is used or if MBeans monitoring is desired.
//
grant {
permission java.lang.RuntimePermission "shutdownHooks";
permission java.lang.RuntimePermission "getenv.SIS_DATA";
permission java.util.PropertyPermission "java.naming.factory.initial", "read";
permission java.util.PropertyPermission "derby.system.home", "read";
permission java.lang.RuntimePermission "getClassLoader";
// Apache SIS suppresses those checks only for its own classes or fields.
permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
// Actually only need access to the ${SIS_DATA} directory.
// The read and delete actions are needed for Derby and may be omitted if another
// database is used (e.g. PostgreSQL). Read operations may also be omitted too if
// another database is used and no other files (e.g. datum shift grids) is needed.
permission java.io.FilePermission "${user.home}${/}-", "read,write,delete";
};
//
// Optional permissions for using the JavaDB embedded with Oracle JDK.
// Some or all of those permissions can be omitted if a Derby driver
// or another database driver (e.g. PostgreSQL) is on the classpath.
//
grant {
permission java.io.FilePermission "${user.dir}${/}derby.log", "read,write,delete";
permission java.io.FilePermission "${java.home}${/}..${/}db${/}lib${/}derby.jar", "read";
permission java.util.PropertyPermission "java.home", "read";
permission java.util.PropertyPermission "derby.*", "read";
permission java.lang.RuntimePermission "getClassLoader";
permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "setContextClassLoader";
};
//
// Optional permissions. If those permissions are not granted, a message
// will be logged at Level.CONFIG and JMX monitoring will be disabled.
//
grant {
permission javax.management.MBeanServerPermission "createMBeanServer";
permission javax.management.MBeanPermission "org.apache.sis.internal.system.Supervisor#-[org.apache.sis:type=Supervisor]", "registerMBean,unregisterMBean";
permission javax.management.MBeanTrustPermission "register";
};