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