/*
 * security policy used by the test process
 */

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

grant {

    // specific property access needed by this test
    permission java.util.PropertyPermission
	"java.rmi.server.codebase", "read,write";
    permission java.util.PropertyPermission
	"java.rmi.server.useCodebaseOnly", "read,write";

    // permissions needed to move classes into separate codebase directories
    permission java.io.FilePermission
	"${test.classes}${/}-", "read,write,delete";
    permission java.io.FilePermission
	".${/}-", "read,write,delete";

    // used by TestLibrary to determine test environment
    permission java.util.PropertyPermission "test.classes", "read";
    permission java.util.PropertyPermission "test.src", "read";
    permission java.util.PropertyPermission "user.dir", "read";
    permission java.util.PropertyPermission "java.home", "read";

    // allow exporting of remote objects on an arbitrary port
    permission java.net.SocketPermission "*:1024-", "connect,accept,listen";
};
