Author: ron.sigal(a)jboss.com
Date: 2008-04-01 23:39:18 -0400 (Tue, 01 Apr 2008)
New Revision: 3829
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/detection/jndi/JNDIDetector.java
Log:
JBREM-934: Put Class.getClassLoader() and InetAddress.getLocalHost() calls in
AccessController.doPrivileged() calls.
Modified:
remoting2/branches/2.x/src/main/org/jboss/remoting/detection/jndi/JNDIDetector.java
===================================================================
---
remoting2/branches/2.x/src/main/org/jboss/remoting/detection/jndi/JNDIDetector.java 2008-04-02
03:36:08 UTC (rev 3828)
+++
remoting2/branches/2.x/src/main/org/jboss/remoting/detection/jndi/JNDIDetector.java 2008-04-02
03:39:18 UTC (rev 3829)
@@ -37,7 +37,13 @@
import javax.naming.NameAlreadyBoundException;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
+
+import java.io.IOException;
import java.net.InetAddress;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
import java.util.Map;
import java.util.Properties;
@@ -291,7 +297,14 @@
}
// Need to actually detect if servers registered in JNDI server
// are actually there (since could die before unregistering)
- ClassLoader cl = JNDIDetector.this.getClass().getClassLoader();
+ ClassLoader cl = (ClassLoader) AccessController.doPrivileged( new
PrivilegedAction()
+ {
+ public Object run()
+ {
+ return JNDIDetector.class.getClassLoader();
+ }
+ });
+
if(!checkInvokerServer(regMsg, cl))
{
unregisterDetection(regMsg.getIdentity().getInstanceId());
@@ -428,7 +441,22 @@
try
{
log.info("JNDI Server configuration information not present so will
create a local server.");
- host = InetAddress.getLocalHost().getHostName();
+
+ try
+ {
+ host = (String)AccessController.doPrivileged( new
PrivilegedExceptionAction()
+ {
+ public Object run() throws IOException
+ {
+ return InetAddress.getLocalHost().getHostName();
+ }
+ });
+ }
+ catch (PrivilegedActionException e)
+ {
+ throw (IOException) e.getCause();
+ }
+
port = PortUtil.findFreePort(host);
log.info("Remoting JNDI detector starting JNDI server instance since
none where specified via configuration.");
Show replies by date