diff options
Diffstat (limited to 'java/openjdk6/files/icedtea/openjdk/8019979-better_access_test.patch')
-rw-r--r-- | java/openjdk6/files/icedtea/openjdk/8019979-better_access_test.patch | 154 |
1 files changed, 0 insertions, 154 deletions
diff --git a/java/openjdk6/files/icedtea/openjdk/8019979-better_access_test.patch b/java/openjdk6/files/icedtea/openjdk/8019979-better_access_test.patch deleted file mode 100644 index 5a92a81b86c1..000000000000 --- a/java/openjdk6/files/icedtea/openjdk/8019979-better_access_test.patch +++ /dev/null @@ -1,154 +0,0 @@ -# HG changeset patch -# User coffeys -# Date 1373625375 -3600 -# Fri Jul 12 11:36:15 2013 +0100 -# Node ID 3b6f55f02122398ba662fb581352c9c9b102c2e3 -# Parent f7a7c7d70e4968eb99e42f812c59900f545d7fa7 -8019979: Replace CheckPackageAccess test with better one from closed repo -Reviewed-by: mullan, robilad - -diff -r f7a7c7d70e49 -r 3b6f55f02122 test/java/lang/SecurityManager/CheckPackageAccess.java ---- jdk/test/java/lang/SecurityManager/CheckPackageAccess.java Fri Oct 25 22:18:57 2013 +0100 -+++ jdk/test/java/lang/SecurityManager/CheckPackageAccess.java Fri Jul 12 11:36:15 2013 +0100 -@@ -22,31 +22,128 @@ - */ - - /* -- * @test -- * @bug 7146431 8000450 -- * @summary Test that internal packages cannot be accessed -+ * @test -+ * @bug 6741606 7146431 8000450 -+ * @summary Make sure all restricted packages listed in the package.access -+ * property in the java.security file are blocked -+ * @run main/othervm CheckPackageAccess - */ - -+import java.security.Security; -+import java.util.Collections; -+import java.util.Arrays; -+import java.util.ArrayList; -+import java.util.List; -+import java.util.StringTokenizer; -+ -+/* -+ * The main benefit of this test is to catch merge errors or other types -+ * of issues where one or more of the packages are accidentally -+ * removed. This is why the packages that are known to be restricted have to -+ * be explicitly listed below. -+ */ - public class CheckPackageAccess { - -+ /* -+ * This array should be updated whenever new packages are added to the -+ * package.access property in the java.security file -+ */ -+ private static final String[] packages = { -+ "sun.", -+ "com.sun.corba.se.impl.", -+ "com.sun.xml.internal.", -+ "com.sun.imageio.", -+ "com.sun.istack.internal.", -+ "com.sun.jmx.", -+ "com.sun.proxy.", -+ "com.sun.org.apache.bcel.internal.", -+ "com.sun.org.apache.regexp.internal.", -+ "com.sun.org.apache.xerces.internal.", -+ "com.sun.org.apache.xpath.internal.", -+ "com.sun.org.apache.xalan.internal.extensions.", -+ "com.sun.org.apache.xalan.internal.lib.", -+ "com.sun.org.apache.xalan.internal.res.", -+ "com.sun.org.apache.xalan.internal.templates.", -+ "com.sun.org.apache.xalan.internal.utils.", -+ "com.sun.org.apache.xalan.internal.xslt.", -+ "com.sun.org.apache.xalan.internal.xsltc.cmdline.", -+ "com.sun.org.apache.xalan.internal.xsltc.compiler.", -+ "com.sun.org.apache.xalan.internal.xsltc.trax.", -+ "com.sun.org.apache.xalan.internal.xsltc.util.", -+ "com.sun.org.apache.xml.internal.res.", -+ "com.sun.org.apache.xml.internal.security.", -+ "com.sun.org.apache.xml.internal.serializer.utils.", -+ "com.sun.org.apache.xml.internal.utils.", -+ "com.sun.org.glassfish.", -+ "oracle.jrockit.jfr.", -+ "org.jcp.xml.dsig.internal.", -+ }; -+ - public static void main(String[] args) throws Exception { -+ List<String> pkgs = new ArrayList<>(Arrays.asList(packages)); -+ String osName = System.getProperty("os.name"); -+ if (osName.contains("OS X")) { -+ pkgs.add("apple."); // add apple package for OS X -+ } else if (osName.startsWith("Windows")) { -+ pkgs.add("com.sun.java.accessibility."); -+ } - -- String[] pkgs = new String[] { -- "com.sun.corba.se.impl.", -- "com.sun.org.apache.xerces.internal.utils.", -- "com.sun.org.apache.xalan.internal.utils." }; -- SecurityManager sm = new SecurityManager(); -- System.setSecurityManager(sm); -- for (String pkg : pkgs) { -- System.out.println("Checking package access for " + pkg); -+ List<String> jspkgs = -+ getPackages(Security.getProperty("package.access")); -+ -+ // Sort to ensure lists are comparable -+ Collections.sort(pkgs); -+ Collections.sort(jspkgs); -+ -+ if (!pkgs.equals(jspkgs)) { -+ for (String p : pkgs) -+ if (!jspkgs.contains(p)) -+ System.out.println("In golden set, but not in j.s file: " + p); -+ for (String p : jspkgs) -+ if (!pkgs.contains(p)) -+ System.out.println("In j.s file, but not in golden set: " + p); -+ -+ -+ throw new RuntimeException("restricted packages are not " + -+ "consistent with java.security file"); -+ } -+ System.setSecurityManager(new SecurityManager()); -+ SecurityManager sm = System.getSecurityManager(); -+ for (String pkg : packages) { -+ String subpkg = pkg + "foo"; - try { - sm.checkPackageAccess(pkg); -- throw new Exception("Expected PackageAccess SecurityException not thrown"); -+ throw new RuntimeException("Able to access " + pkg + -+ " package"); -+ } catch (SecurityException se) { } -+ try { -+ sm.checkPackageAccess(subpkg); -+ throw new RuntimeException("Able to access " + subpkg + -+ " package"); - } catch (SecurityException se) { } - try { - sm.checkPackageDefinition(pkg); -- throw new Exception("Expected PackageDefinition SecurityException not thrown"); -+ throw new RuntimeException("Able to define class in " + pkg + -+ " package"); -+ } catch (SecurityException se) { } -+ try { -+ sm.checkPackageDefinition(subpkg); -+ throw new RuntimeException("Able to define class in " + subpkg + -+ " package"); - } catch (SecurityException se) { } - } -+ System.out.println("Test passed"); -+ } -+ -+ private static List<String> getPackages(String p) { -+ List<String> packages = new ArrayList<>(); -+ if (p != null && !p.equals("")) { -+ StringTokenizer tok = new StringTokenizer(p, ","); -+ while (tok.hasMoreElements()) { -+ String s = tok.nextToken().trim(); -+ packages.add(s); -+ } -+ } -+ return packages; - } - } |