[jboss-remoting-commits] JBoss Remoting SVN: r3874 - remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/config.

jboss-remoting-commits at lists.jboss.org jboss-remoting-commits at lists.jboss.org
Wed Apr 2 01:38:59 EDT 2008


Author: ron.sigal at jboss.com
Date: 2008-04-02 01:38:59 -0400 (Wed, 02 Apr 2008)
New Revision: 3874

Modified:
   remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/config/FactoryConfigTestCaseSSLParent.java
Log:
JBREM-934: Put MBeanServerFactory.createMBeanServer() and MBeanServer.registerMBean() calls in AccessController.doPrivileged() calls.

Modified: remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/config/FactoryConfigTestCaseSSLParent.java
===================================================================
--- remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/config/FactoryConfigTestCaseSSLParent.java	2008-04-02 05:38:04 UTC (rev 3873)
+++ remoting2/branches/2.x/src/tests/org/jboss/test/remoting/transport/config/FactoryConfigTestCaseSSLParent.java	2008-04-02 05:38:59 UTC (rev 3874)
@@ -55,6 +55,9 @@
 import java.net.ServerSocket;
 import java.net.Socket;
 import java.net.UnknownHostException;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -88,8 +91,27 @@
          ServerSocketFactory service = getDefaultServerSocketFactory();
          String serverSocketFactoryName = "jboss:type=serversocketfactory";
          ObjectName objName = new ObjectName(serverSocketFactoryName);
-         MBeanServer mbeanServer = MBeanServerFactory.createMBeanServer();
-         mbeanServer.registerMBean(service, objName);
+         
+         MBeanServer mbeanServer = null;
+         try
+         {
+            final ServerSocketFactory finalService = service;
+            final ObjectName finalName = objName;
+            mbeanServer = (MBeanServer) AccessController.doPrivileged( new PrivilegedExceptionAction()
+            {
+               public Object run() throws Exception
+               {
+                  MBeanServer mbeanServer = MBeanServerFactory.createMBeanServer();
+                  mbeanServer.registerMBean(finalService, finalName);
+                  return mbeanServer;
+               }
+            });
+         }
+         catch (PrivilegedActionException e)
+         {
+            throw (Exception) e.getCause();
+         }
+         
          sconfig.put(ServerInvoker.SERVER_SOCKET_FACTORY, serverSocketFactoryName);
 
          // Make callback Client use remote invoker.
@@ -117,16 +139,49 @@
          // Give different protocol than used by default factories.
          sconfig.put(SSLSocketBuilder.REMOTING_SSL_PROTOCOL, "TLS");
 
-         Connector connector = new Connector(sconfig);
-         mbeanServer.registerMBean(connector, new ObjectName("test:type=connector"));
+         final Connector connector = new Connector(sconfig);
+         try
+         {
+            final MBeanServer finalServer = mbeanServer;
+            AccessController.doPrivileged( new PrivilegedExceptionAction()
+            {
+               public Object run() throws Exception
+               {
+                  finalServer.registerMBean(connector, new ObjectName("test:type=connector"));
+                  return null;
+               }
+            });
+         }
+         catch (PrivilegedActionException e)
+         {
+            throw (Exception) e.getCause();
+         }
 
          // Create another ServerSocketFactoryMBean
          secret = ((short) System.currentTimeMillis()) & 0xffff;
          service = getDefaultServerSocketFactory();
          serverSocketFactoryName = "jboss:type=serversocketfactory2";
          objName = new ObjectName(serverSocketFactoryName);
-         mbeanServer.registerMBean(service, objName);
-
+         
+         try
+         {
+            final MBeanServer finalServer = mbeanServer;
+            final ServerSocketFactory finalService = service;
+            final ObjectName finalName = objName;
+            AccessController.doPrivileged( new PrivilegedExceptionAction()
+            {
+               public Object run() throws Exception
+               {
+                  finalServer.registerMBean(finalService, finalName);
+                  return null;
+               }
+            });
+         }
+         catch (PrivilegedActionException e)
+         {
+            throw (Exception) e.getCause();
+         }
+         
          // Create and set xml configuration document.
          int freeport = PortUtil.findFreePort(getHostName());
          StringBuffer buf = new StringBuffer();
@@ -260,11 +315,28 @@
          secret = ((short) System.currentTimeMillis()) & 0xffff;
 
          // Put ServerSocketFactory MBean name in config map.
-         ServerSocketFactory service = getDefaultServerSocketFactory();
+         final ServerSocketFactory service = getDefaultServerSocketFactory();
          String serverSocketFactoryName = "jboss:type=serversocketfactory";
-         ObjectName objName = new ObjectName(serverSocketFactoryName);
-         MBeanServer mbeanServer = MBeanServerFactory.createMBeanServer();
-         mbeanServer.registerMBean(service, objName);
+         final ObjectName objName = new ObjectName(serverSocketFactoryName);
+         MBeanServer mbeanServer = null;
+
+         try
+         {
+            mbeanServer = (MBeanServer) AccessController.doPrivileged( new PrivilegedExceptionAction()
+            {
+               public Object run() throws Exception
+               {
+                  MBeanServer mbeanServer = MBeanServerFactory.createMBeanServer();
+                  mbeanServer.registerMBean(service, objName);
+                  return mbeanServer;
+               }
+            });
+         }
+         catch (PrivilegedActionException e)
+         {
+            throw (Exception) e.getCause();
+         }
+         
          sconfig.put(ServerInvoker.SERVER_SOCKET_FACTORY, serverSocketFactoryName);
 
          // Make callback Client use remote invoker.
@@ -293,8 +365,24 @@
          sconfig.put(SSLSocketBuilder.REMOTING_SSL_PROTOCOL, "TLS");
 
          int freeport = PortUtil.findFreePort(getHostName());
-         Connector connector = new Connector(sconfig);
-         mbeanServer.registerMBean(connector, new ObjectName("test:type=connector"));
+         final Connector connector = new Connector(sconfig);
+         
+         try
+         {
+            final MBeanServer finalServer = mbeanServer;
+            AccessController.doPrivileged( new PrivilegedExceptionAction()
+            {
+               public Object run() throws Exception
+               {
+                  finalServer.registerMBean(connector, new ObjectName("test:type=connector"));
+                  return null;
+               }
+            });
+         }
+         catch (PrivilegedActionException e)
+         {
+            throw (Exception) e.getCause();
+         }
 
          // Create and set xml configuration document.
          StringBuffer buf = new StringBuffer();




More information about the jboss-remoting-commits mailing list