OpenJDK / jdk8u / jdk8u-dev / jdk
changeset 13257:2db6890a9567 jdk8u191-b02 jdk8u201-b00
Merge
author | alitvinov |
---|---|
date | Tue, 10 Jul 2018 19:21:13 +0100 |
parents | e6d7570bc0d8 28d4d67065ab |
children | aacf5265da52 39f2b8e0403f |
files | |
diffstat | 1 files changed, 27 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/com/sun/naming/internal/VersionHelper12.java Tue Jul 10 19:00:44 2018 +0100 +++ b/src/share/classes/com/sun/naming/internal/VersionHelper12.java Tue Jul 10 19:21:13 2018 +0100 @@ -62,6 +62,25 @@ } /** + * Determines whether classes may be loaded from an arbitrary URL code base. + */ + private static final String TRUST_URL_CODEBASE_PROPERTY = + "com.sun.jndi.ldap.object.trustURLCodebase"; + private static final String trustURLCodebase = + AccessController.doPrivileged( + new PrivilegedAction<String>() { + public String run() { + try { + return System.getProperty(TRUST_URL_CODEBASE_PROPERTY, + "false"); + } catch (SecurityException e) { + return "false"; + } + } + } + ); + + /** * Package private. * * This internal method is used with Thread Context Class Loader (TCCL), @@ -79,12 +98,15 @@ */ public Class<?> loadClass(String className, String codebase) throws ClassNotFoundException, MalformedURLException { + if ("true".equalsIgnoreCase(trustURLCodebase)) { + ClassLoader parent = getContextClassLoader(); + ClassLoader cl = + URLClassLoader.newInstance(getUrlArray(codebase), parent); - ClassLoader parent = getContextClassLoader(); - ClassLoader cl = - URLClassLoader.newInstance(getUrlArray(codebase), parent); - - return loadClass(className, cl); + return loadClass(className, cl); + } else { + return null; + } } String getJndiProperty(final int i) {