|
View:
New views
1 Messages
—
Rating Filter:
Alert me
|
|
|
FIY: More security manager related fixlets2009-07-09 Mario Torre <neugens@...>
* gnu/testlet/java/lang/SecurityManager/thread.java: make sure SecurityManager is installed. * gnu/testlet/java/lang/System/security.java: clear property that we assume to be non existing (needed if test runs several time without exiting the vm). * gnu/testlet/java/net/URLClassLoader/security.java: * gnu/testlet/java/lang/Thread/security10.java Thread.enumerate does checks on ThreadGroup, but not on Thread create fake URLStreamHandler -- Mario Torre, Software Developer, http://www.jroller.com/neugens/ aicas Allerton Interworks Computer Automated Systems GmbH Haid-und-Neu-Straße 18 * D-76131 Karlsruhe * Germany http://www.aicas.com * Tel: +49-721-663 968-44 pgp key: http://subkeys.pgp.net/ PGP Key ID: 80F240CF Fingerprint: BA39 9666 94EC 8B73 27FA FC7C 4086 63E3 80F2 40CF USt-Id: DE216375633, Handelsregister HRB 109481, AG Mannheim Geschäftsführer: Dr. James J. Hunt Please, support open standards: http://endsoftpatents.org/ [2009-07-24-security-manager-2.patch] # This patch file was generated by NetBeans IDE # This patch can be applied using context Tools: Apply Diff Patch action on respective folder. # It uses platform neutral UTF-8 encoding. # Above lines and this line are ignored by the patching process. Index: mauve/gnu/testlet/java/lang/SecurityManager/thread.java --- mauve/gnu/testlet/java/lang/SecurityManager/thread.java Base (1.3) +++ mauve/gnu/testlet/java/lang/SecurityManager/thread.java Locally Modified (Based On 1.3) @@ -54,6 +54,10 @@ // Check we're checking TestSecurityManager sm = new TestSecurityManager(harness); + try + { + sm.install(); + sm.prepareChecks(new Permission[] { new RuntimePermission("modifyThread")}); sm.checkAccess(thread); @@ -64,4 +68,9 @@ sm.checkAccess(group); sm.checkAllChecked(); } + finally + { + sm.uninstall(); } + } +} Index: mauve/gnu/testlet/java/lang/System/security.java --- mauve/gnu/testlet/java/lang/System/security.java Base (1.6) +++ mauve/gnu/testlet/java/lang/System/security.java Locally Modified (Based On 1.6) @@ -34,6 +34,7 @@ { public void test(TestHarness harness) { + String not_a_property = "java.monkey.flump"; try { harness.checkPoint("setup"); @@ -48,12 +49,12 @@ Properties properties = System.getProperties(); String a_property = "java.vm.name"; - String not_a_property = "java.monkey.flump"; harness.check(properties.containsKey(a_property)); harness.check(!properties.containsKey(not_a_property)); + //exitVM.0 or set compare style to implies Permission[] exitVM = new Permission[] { - new RuntimePermission("exitVM")}; + new RuntimePermission("exitVM.0")}; Permission[] loadLibrary_name = new Permission[] { new RuntimePermission("loadLibrary." + library_name)}; @@ -307,6 +308,7 @@ } finally { sm.uninstall(); + System.clearProperty(not_a_property); } } catch (Exception ex) { Index: mauve/gnu/testlet/java/lang/Thread/security10.java --- mauve/gnu/testlet/java/lang/Thread/security10.java Base (1.3) +++ mauve/gnu/testlet/java/lang/Thread/security10.java Locally Modified (Based On 1.3) @@ -34,6 +34,10 @@ { throw new SecurityException(); } + public void checkAccess(ThreadGroup thread) + { + throw new SecurityException(); + } public void checkPermission(Permission perm) { @@ -63,6 +67,8 @@ Thread testThread = new Thread(); + ThreadGroup group = new ThreadGroup("MyGroup"); + System.setSecurityManager(new MySecurityManager()); Runnable run = new Runnable() @@ -115,8 +121,6 @@ h.checkPoint("Thread creation with ThreadGroup"); - ThreadGroup group = new ThreadGroup("MyGroup"); - try { Thread thread = new Thread(group, "MyThread"); @@ -267,9 +271,12 @@ try { + /** + * does not call checkAccess(Thread) but + * checkAccess(ThreadGroup) + */ Thread[] array = new Thread[1]; - array[0] = Thread.currentThread(); - testThread.enumerate(array); + Thread.enumerate(array); h.check(false); } catch (SecurityException e) Index: mauve/gnu/testlet/java/net/URLClassLoader/security.java --- mauve/gnu/testlet/java/net/URLClassLoader/security.java Base (1.2) +++ mauve/gnu/testlet/java/net/URLClassLoader/security.java Locally Modified (Based On 1.2) @@ -22,8 +22,10 @@ package gnu.testlet.java.net.URLClassLoader; +import java.io.IOException; import java.net.URL; import java.net.URLClassLoader; +import java.net.URLConnection; import java.net.URLStreamHandler; import java.net.URLStreamHandlerFactory; import java.security.Permission; @@ -97,7 +99,13 @@ { public URLStreamHandler createURLStreamHandler(String protocol) { + return new URLStreamHandler() + { + protected URLConnection openConnection(URL u) throws IOException + { throw new RuntimeException("not implemented"); } + }; } } +} |
| Free embeddable forum powered by Nabble | Forum Help |