/*
 * security policy used by MarshalForeignStub test
 */

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

grant {

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