// Standard extensions get all permissions by default

grant codeBase "file:${java.home}/lib/ext/*" {
	permission java.security.AllPermission;
};

// default permissions granted to all domains
grant { 
	// Allows any thread to stop itself using the java.lang.Thread.stop()
	// method that takes no argument.
	// Note that this permission is granted by default only to remain
	// backwards compatible.
	// It is strongly recommended that you either remove this permission
	// from this policy file or further restrict it to code sources
	// that you specify, because Thread.stop() is potentially unsafe.
	// See "http://java.sun.com/notes" for more information.
	permission java.lang.RuntimePermission "stopThread";

	// allows anyone to listen on un-privileged ports
	permission java.net.SocketPermission "localhost:1024-", "listen";

	// "standard" properies that can be read by anyone

	permission java.util.PropertyPermission "java.version", "read";
	permission java.util.PropertyPermission "java.vendor", "read";
	permission java.util.PropertyPermission "java.vendor.url", "read";
	permission java.util.PropertyPermission "java.class.version", "read";
	permission java.util.PropertyPermission "os.name", "read";
	permission java.util.PropertyPermission "os.version", "read";
	permission java.util.PropertyPermission "os.arch", "read";
	permission java.util.PropertyPermission "file.separator", "read";
	permission java.util.PropertyPermission "path.separator", "read";
	permission java.util.PropertyPermission "line.separator", "read";

	permission java.util.PropertyPermission "java.specification.version", "read";
	permission java.util.PropertyPermission "java.specification.vendor", "read";
	permission java.util.PropertyPermission "java.specification.name", "read";

	permission java.util.PropertyPermission "java.vm.specification.version", "read";
	permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
	permission java.util.PropertyPermission "java.vm.specification.name", "read";
	permission java.util.PropertyPermission "java.vm.version", "read";
	permission java.util.PropertyPermission "java.vm.vendor", "read";
	permission java.util.PropertyPermission "java.vm.name", "read";

       permission java.io.FilePermission "*","read,write";

};

grant codeBase "file:/-" {
	permission java.security.AllPermission;
       permission java.io.FilePermission "*","read,write";
};

grant principal javax.management.remote.JMXPrincipal "SQE_username" {
    permission javax.management.MBeanServerPermission "*";
    permission javax.management.MBeanPermission "Simple", "instantiate";
    permission javax.management.MBeanPermission "Simple", "registerMBean";
};

grant principal javax.management.remote.JMXPrincipal "username1" {
    //
    // JMXPrincipals "username1" has all permissions.
    //
    permission java.security.AllPermission;
};

grant principal javax.management.remote.JMXPrincipal "username2" {
    //
    // JMXPrincipals "username2" has all permissions.
    //
    permission java.security.AllPermission;
};

grant principal javax.management.remote.JMXPrincipal "username3" {
    //
    // JMXPrincipals "username3" has some permissions.
    //
    permission javax.management.MBeanPermission "Simple", "instantiate";
    permission javax.management.MBeanPermission "Simple", "registerMBean";
    permission javax.management.MBeanPermission "Simple", "setAttribute";
    permission javax.management.MBeanPermission "Simple", "invoke";
};

grant principal javax.management.remote.JMXPrincipal "username4" {
    //
    // JMXPrincipals "username4" has all permissions.
    //
    permission javax.management.MBeanPermission "Simple", "instantiate";
    permission javax.management.MBeanPermission "Simple", "registerMBean";
    permission javax.management.MBeanPermission "Simple", "invoke";
};

grant principal javax.management.remote.JMXPrincipal "username5" {
    //
    // JMXPrincipals "username5" has no permissions.
    //
};