Author: sbratton
Date: Thu Feb 15 21:50:58 2018
New Revision: 1824375
URL: http://svn.apache.org/viewvc?rev=1824375&view=rev
Log:
add doPrivileged wrapper in JREInitialContextFactoryBuilder. Fixes ARIES-1782.
Modified:
aries/trunk/jndi/jndi-core/src/main/java/org/apache/aries/jndi/JREInitialContextFactoryBuilder.java
Modified:
aries/trunk/jndi/jndi-core/src/main/java/org/apache/aries/jndi/JREInitialContextFactoryBuilder.java
URL:
http://svn.apache.org/viewvc/aries/trunk/jndi/jndi-core/src/main/java/org/apache/aries/jndi/JREInitialContextFactoryBuilder.java?rev=1824375&r1=1824374&r2=1824375&view=diff
==============================================================================
---
aries/trunk/jndi/jndi-core/src/main/java/org/apache/aries/jndi/JREInitialContextFactoryBuilder.java
(original)
+++
aries/trunk/jndi/jndi-core/src/main/java/org/apache/aries/jndi/JREInitialContextFactoryBuilder.java
Thu Feb 15 21:50:58 2018
@@ -18,6 +18,8 @@
*/
package org.apache.aries.jndi;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.Hashtable;
import javax.naming.Context;
@@ -29,17 +31,21 @@ public class JREInitialContextFactoryBui
public InitialContextFactory createInitialContextFactory(Hashtable<?, ?>
environment)
throws NamingException {
- String contextFactoryClass = (String)
environment.get(Context.INITIAL_CONTEXT_FACTORY);
+ final String contextFactoryClass = (String)
environment.get(Context.INITIAL_CONTEXT_FACTORY);
if (contextFactoryClass != null) {
- try {
- @SuppressWarnings("unchecked")
- Class<? extends InitialContextFactory> clazz = (Class<?
extends InitialContextFactory>)
ClassLoader.getSystemClassLoader().loadClass(contextFactoryClass);
- return InitialContextFactory.class.cast(clazz.newInstance());
- } catch (Exception e) {
- return null;
- }
+ return AccessController.doPrivileged(new
PrivilegedAction<InitialContextFactory>() {
+ public InitialContextFactory run() {
+ try {
+ @SuppressWarnings("unchecked")
+ Class<? extends InitialContextFactory> clazz =
(Class<? extends InitialContextFactory>) ClassLoader.
+
getSystemClassLoader().loadClass(contextFactoryClass);
+ return
InitialContextFactory.class.cast(clazz.newInstance());
+ } catch (Exception e) {
+ return null;
+ }
+ }
+ });
}
return null;
- }
-
+ }
}