This is the mail archive of the
mauve-patches@sourceware.org
mailing list for the Mauve project.
FIY: More security manager related fixlets
- From: Mario Torre <mario dot torre at aicas dot com>
- To: mauve-patches at sources dot redhat dot com
- Date: Fri, 24 Jul 2009 13:08:22 +0200
- Subject: FIY: More security manager related fixlets
2009-07-09 Mario Torre <neugens@aicas.com>
* 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/
# 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");
}
+ };
}
}
+}