Author: ron.sigal(a)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();
Show replies by date