Just a few comments:

1. When you write a test that uses the jtreg /policy option, the policy file overrides the system policy file. If the test depends on a standard extension, then you may get SecurityExceptions unless additional perms are granted. Thus, there are quite a few tests that define their own policy files and duplicate the grant statement for extensions from the system policy:

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

These tests should be modified to only grant the necessary permissions. However, ideally I think that a better solution would be to add a jtreg /policy option that doesn't override the system policy file, but rather appends to it, for example, using "==" :

    @run main/othervm/policy==test.policy

(this is the reverse behavior of the java.security.policy system property, so it might be a little confusing, so maybe it is better to add a new option)

2. test/lib/security/java.policy/Ext_AllPolicy.java

I think you should also add a check for AllPermission.

3. jdk/nio/zipfs/ZipFileSystem.java

If I understand the changes, the previous code would throw SecurityExceptions when run under a SecurityManager? It's not specifically related to this bug, is it?

4. lib/security/java.policy

    grant codeBase "file:${java.home}/lib/ext/zipfs.jar" {
permission java.io.FilePermission "<<ALL FILES>>", "read,write,delete";

Hmm, granting that likely means you are just a hop away from getting AllPermission ... not sure what to advise here, but there are several cases like this for certain permissions (ex: RuntimePermission "createClassLoader" is another one).

--Sean

On 04/22/2014 03:39 PM, Mandy Chung wrote:
This change proposes to remove granting all permissions for extensions
as the default and implements the principle of least privilege.In JDK 9,
we want to reduce the privileges of as many system classes as possible.

http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8040059/webrev.00/

This patch has reduced the zipfs, localedata and cldrdata to grant the
permissions they require.  It grants AllPermission to other jar files in
the lib/ext directory shipped with JDK and this change is intended to
enable the component teams to identify the minimum permissions and fix
any issue, if any.

Libraries installed in the extensions directory depending on
AllPermission granted by default are impacted.   Making this change as
early in JDK 9 allows us to identify any customer impacted by this change.

Mandy

Reply via email to