--- 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";
}