jdk/src/share/classes/sun/reflect/misc/ReflectUtil.java
changeset 16087 89b565a23835
parent 13589 da4cb574f4a6
child 16100 379f48d34516
--- a/jdk/src/share/classes/sun/reflect/misc/ReflectUtil.java	Tue Oct 30 17:05:45 2012 +0400
+++ b/jdk/src/share/classes/sun/reflect/misc/ReflectUtil.java	Fri Nov 02 16:50:23 2012 -0700
@@ -178,4 +178,29 @@
 
         return !isAncestor(from, to);
     }
+
+    /**
+     * Access check on the interfaces that a proxy class implements and throw
+     * {@code SecurityException} if it accesses a restricted package.
+     *
+     * @param ccl the caller's class loader
+     * @param interfaces the list of interfaces that a proxy class implements
+     *
+     * @see Proxy#checkProxyAccess
+     */
+    public static void checkProxyPackageAccess(ClassLoader ccl,
+                                               Class<?>... interfaces)
+    {
+        SecurityManager sm = System.getSecurityManager();
+        if (sm != null) {
+            for (Class<?> intf : interfaces) {
+                ClassLoader cl = intf.getClassLoader();
+                if (needsPackageAccessCheck(ccl, cl)) {
+                    checkPackageAccess(intf);
+                }
+            }
+        }
+    }
+
+    public static final String PROXY_PACKAGE = "sun.proxy";
 }