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


Reply via email to