[ http://issues.apache.org/jira/browse/HARMONY-35?page=all ]
     
Tim Ellison resolved HARMONY-35:
--------------------------------

    Resolution: Fixed

Fixed in luni module  com/ibm/oti/util/DefaultPolicy.java  at repository 
revision 370797.

George, please check this fully fixes the problem.


> Harmony ignores java.security.policy property
> ---------------------------------------------
>
>          Key: HARMONY-35
>          URL: http://issues.apache.org/jira/browse/HARMONY-35
>      Project: Harmony
>         Type: Bug
>   Components: Classlib
>  Environment: Win32 and Linux
>     Reporter: George Harley
>     Assignee: Tim Ellison
>  Attachments: HARMONY-35-patch.txt
>
> Here is the complete contents of a Java security policy file called 
> "mysecurity.policy" that can be used to specify additional permissions to a 
> JRE...
> ---------snip----------
> grant {
>     // so we can remove the security manager
>     permission java.lang.RuntimePermission "setSecurityManager";
> };
> ---------snip----------
> If its location is passed in the Java launch arguments with the 
> java.security.policy property as below then the permissions are added to the 
> default set of permissions that the JRE runs with ...
> -Djava.security.policy=c:\path\to\mysecurity.policy
> If the following unit test is run against a sandbox build of the classlibs 
> under SVN trunk on the IBM Apache Harmony VME with the java.security.policy 
> set (as above) so that the "setSecurityManager" runtime permission is added, 
> then a pass should result. It doesn't. 
> -----------snip--------------
> package foo;
> import java.security.AccessControlException;
> import junit.framework.TestCase;
> public class SecurityPolicyTest extends TestCase {
>     public void testPermissions() {
>         try {
>             System.out
>                     .println("Trying to set the security manager the first 
> time...");
>             System.setSecurityManager(new SecurityManager());
>             System.out.println("Trying to set the security manager to 
> null...");
>             System.setSecurityManager(null);
>             assertEquals(null, System.getSecurityManager());
>         } catch (AccessControlException e) {
>             fail("Caught AccessControlException : " + e.getMessage());
>         }
>     }
> }
> -----------snip--------------
> The failure occurs because an AccessControlException is thrown on the second 
> call to System.setSecurityManager() when the test tries to pass a null 
> argument.
> The problem is that after the first call to System.setSecurityManager() has 
> installed a security manager, there is no runtime permission to enable the 
> security manager to be set again. This is despite the fact that when running 
> the test we set the java.security.policy property to point to a file that 
> grants this very permission !
> The reason for this buggy behaviour is the incomplete implementation of 
> com.ibm.oti.util.DefaultPolicy in the luni component. The readPolicy() method 
> needs work to actually fulfill its contract as laid out in the Javadoc 
> comments. 
> George

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to