harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey Varlamov" <alexey.v.varla...@gmail.com>
Subject Re: [classlib][security-kernel] Setting non-system SecurityManager for the first time
Date Thu, 11 Jan 2007 07:42:58 GMT
2007/1/11, Mikhail Markov <mikhail.a.markov@gmail.com>:
>  > I could suggest opening at least 2 JIRAs:
> > 1) "non-bug diff" as this code should silently work
> Seems like we've already have this one:
> https://issues.apache.org/jira/browse/HARMONY-2461

Yes,there are non-bug-diff HARMONY-2461 for DRLVM and won't-fix
HARMONY-2002 for j9. Nothing else to do right now :)


>
> Regards,
> Mikhail
>
> On 1/10/07, Mikhail Markov <mikhail.a.markov@gmail.com> wrote:
> >
> > Hi!
> >
> > While investigating https://issues.apache.org/jira/browse/HARMONY-2955 JIRA
> > i've found an interesting thing:
> > The testcase below produces different result for 3 VMs (below as well) and
> > all 3 are rather weird:
> > RI:
> >   - need access to some security properties when calling
> > System.setSecurityManager for the first time - seems violation of the spec
> > to me.
> >   - but if uncomment the line #5 (and thus some static initializers will
> > be done) then the output is just "Security manager was successfully set."
> >
> > DRLVM:
> >   - checking java.security.SecurityPermission getProperty.package.accessand althought
it's not granted - successfully sets security manager
> > (probably by catching exception inside VM kernel classes)
> >
> > IBM VME:
> >   - checking the same java.security.SecurityPermission
> > getProperty.package.access and crashes as it's not granted
> >
> > From these 3 results DRLVM seems to me the closest to what is expected.
> >
> > I'm not sure what kinds of JIRAs should be open in this case:
> > I could suggest opening at least 2 JIRAs:
> > 1) "non-bug diff" as this code should silently work
> > 2) against IBM VME - as it crashes while checking additional properties
> > Not sure what to do with DRLVM as it's behaviour generally correct.
> >
> > Thoughts?
> >
> > Regards,
> > Mikhail
> >
> > -------- output --------------
> > RI:
> > Checking (java.security.SecurityPermission
> > getProperty.networkaddress.cache.ttl)...
> > Exception in thread "main" java.lang.ExceptionInInitializerError
> >         at java.lang.System.setSecurityManager0(System.java :275)
> >         at java.lang.System.setSecurityManager(System.java:244)
> >         at Test.main(Test.java:6)
> > Caused by: java.lang.SecurityException: (java.security.SecurityPermission
> > getProperty.networkaddress.cache.ttl ) is not granted.
> >         at MySecurityManager.checkPermission(Test.java:14)
> >         at java.security.Security.getProperty(Security.java:724)
> >         at sun.net.InetAddressCachePolicy$1.run(
> > InetAddressCachePolicy.java :81)
> >         at java.security.AccessController.doPrivileged(Native Method)
> >         at sun.net.InetAddressCachePolicy.<clinit>(
> > InetAddressCachePolicy.java:77)
> >         ... 3 more
> >
> > DRLVM:
> > Checking (java.security.SecurityPermission getProperty.package.access)...
> > Security manager was successfully set.
> > Checking (java.lang.RuntimePermission getProtectionDomain)...
> >
> > IBM VME (crashes):
> > Checking (java.security.SecurityPermission getProperty.package.access)...
> > Exception in thread "main" java.lang.SecurityException: (
> > java.security.SecurityPermission getProperty.package.access) is not
> > granted.
> >         at MySecurityManager.checkPermission(Test.java:14)
> >         at java.lang.SecurityManager.checkSecurityAccess(
> > SecurityManager.java:422)
> >         at java.security.Security.getProperty(Security.java:360)
> >         at org.apache.harmony.luni.util.PriviAction.run(PriviAction.java
> > :131)
> >         at java.security.AccessController.doPrivileged(
> > AccessController.java:179)
> >         at java.lang.SecurityManager.checkPackageProperty(
> > SecurityManager.java :333)
> >         at java.lang.SecurityManager.checkPackageAccess(
> > SecurityManager.java:34)
> >         at com.ibm.oti.vm.URLSystemClassLoader.loadClass(
> > URLSystemClassLoader.java:54)
> >         at java.lang.ClassLoader.loadClass (ClassLoader.java:620)
> >         at com.ibm.oti.vm.URLSystemClassLoader.loadClass(
> > URLSystemClassLoader.java:60)
> >         at java.lang.ClassLoader.loadClass(ClassLoader.java:594)
> >         at MySecurityManager.checkPermission (Test.java:13)
> >         at java.lang.SecurityManager.checkSecurityAccess(
> > SecurityManager.java:422)
> >         at java.security.Security.getProperty(Security.java:360)
> >         at org.apache.harmony.luni.util.PriviAction.run (PriviAction.java
> > :131)
> >         at java.security.AccessController.doPrivileged(
> > AccessController.java:179)
> >         at java.lang.SecurityManager.checkPackageProperty(
> > SecurityManager.java:333)
> >         at java.lang.SecurityManager.checkPackageAccess (
> > SecurityManager.java:34)
> >         at com.ibm.oti.vm.URLSystemClassLoader.loadClass(
> > URLSystemClassLoader.java:54)
> >         at java.lang.ClassLoader.loadClass(ClassLoader.java:594)
> >         at Test.main(Test.java:7)
> > Checking (java.lang.RuntimePermission modifyThreadGroup)...
> >
> > -------- Test.java -----------
> >
> > import java.security.Permission;
> >
> >
> >
> > public class Test {
> >
> >     public static void main(String[] args) throws Exception {
> >
> >         //System.setSecurityManager(null);
> >
> >         System.setSecurityManager(new MySecurityManager());
> >
> >         System.out.println("Security manager was successfully set.");
> >
> >     }
> >
> > }
> >
> >
> >
> > class MySecurityManager extends SecurityManager {
> >
> >     public void checkPermission(Permission perm) {
> >
> >         System.out.println("Checking " + perm + "...");
> >
> >         throw new SecurityException(perm.toString () + " is not
> > granted.");
> >
> >     }
> >
> > }
> >
> >
> >
>
>

Mime
View raw message