[jboss-remoting-commits] JBoss Remoting SVN: r3718 - remoting2/branches/2.x/src/main/org/jboss/remoting/transport/rmi.

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Fri Mar 21 01:09:28 EDT 2008


Author: ron.sigal at jboss.com
Date: 2008-03-21 01:09:27 -0400 (Fri, 21 Mar 2008)
New Revision: 3718

Modified:
   remoting2/branches/2.x/src/main/org/jboss/remoting/transport/rmi/RMIClientInvoker.java
Log:
JBREM-934: Put Registry.lookup() in AccessController.doPrivileged() call.

Modified: remoting2/branches/2.x/src/main/org/jboss/remoting/transport/rmi/RMIClientInvoker.java
===================================================================
--- remoting2/branches/2.x/src/main/org/jboss/remoting/transport/rmi/RMIClientInvoker.java	2008-03-21 05:04:18 UTC (rev 3717)
+++ remoting2/branches/2.x/src/main/org/jboss/remoting/transport/rmi/RMIClientInvoker.java	2008-03-21 05:09:27 UTC (rev 3718)
@@ -42,12 +42,14 @@
 import org.jboss.remoting.marshal.rmi.RMIUnMarshaller;
 import org.jboss.remoting.serialization.SerializationManager;
 import org.jboss.remoting.serialization.SerializationStreamFactory;
+import org.jboss.util.propertyeditor.PropertyEditors;
 import org.jboss.util.threadpool.BasicThreadPool;
 import org.jboss.util.threadpool.BlockingMode;
 import org.jboss.util.threadpool.RunnableTaskWrapper;
 import org.jboss.util.threadpool.Task;
 import org.jboss.util.threadpool.ThreadPool;
 
+import java.beans.IntrospectionException;
 import java.io.BufferedInputStream;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -58,6 +60,9 @@
 import java.rmi.RemoteException;
 import java.rmi.registry.LocateRegistry;
 import java.rmi.registry.Registry;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -223,13 +228,30 @@
          {
             home = (Home) it.next();
             String host = home.host;
-            int port = home.port;
+            final int port = home.port;
             locator.setHomeInUse(home);
             storeLocalConfig(configuration);
             log.debug(this + " looking up registry: " + host + "," + port);
-            Registry registry = LocateRegistry.getRegistry(host, registryPort);
+            final Registry registry = LocateRegistry.getRegistry(host, registryPort);
             log.debug(this + " trying to connect to: " + home);
-            Remote remoteObj = registry.lookup("remoting/RMIServerInvoker/" + port);
+            Remote remoteObj = null;
+            
+            try
+            {
+               remoteObj = (Remote) AccessController.doPrivileged( new PrivilegedExceptionAction()
+               {
+                  public Object run() throws Exception
+                  {
+                     return registry.lookup("remoting/RMIServerInvoker/" + port);
+                  }
+               });
+            }
+            catch (PrivilegedActionException e)
+            {
+               log.debug(e.toString(), e);
+               throw (Exception) e.getCause();
+            }
+            
             log.debug("Remote RMI Stub: " + remoteObj);
             setServerStub((RMIServerInvokerInf) remoteObj);
             connected = true;




More information about the jboss-remoting-commits mailing list