You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ad...@apache.org on 2003/11/23 18:26:44 UTC
cvs commit: incubator-geronimo/modules/core/src/java/org/apache/geronimo/security GeronimoLoginConfiguration.java
adc 2003/11/23 09:26:44
Modified: modules/core/src/java/org/apache/geronimo/security
GeronimoLoginConfiguration.java
Log:
Use ThreadLocals instead of a single static instance. I'm still not happy
w/ the way this works. I would welcome suggestions.
Revision Changes Path
1.2 +7 -6 incubator-geronimo/modules/core/src/java/org/apache/geronimo/security/GeronimoLoginConfiguration.java
Index: GeronimoLoginConfiguration.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/security/GeronimoLoginConfiguration.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- GeronimoLoginConfiguration.java 18 Nov 2003 05:17:17 -0000 1.1
+++ GeronimoLoginConfiguration.java 23 Nov 2003 17:26:43 -0000 1.2
@@ -73,14 +73,15 @@
* @version $Revision$ $Date$
*/
public class GeronimoLoginConfiguration extends Configuration {
- private static MBeanServer mBeanServer;
+ private static ThreadLocal mBeanServer = new ThreadLocal();
SecurityServiceMBean securityServiceMBean;
public AppConfigurationEntry[] getAppConfigurationEntry(String realm) {
- if (mBeanServer == null) throw new java.lang.IllegalStateException("MBean Server not set");
+ MBeanServer server = (MBeanServer)mBeanServer.get();
+ if (server == null) throw new java.lang.IllegalStateException("MBean Server not set");
SecurityServiceMBean ss = (SecurityServiceMBean) MBeanProxyFactory.getProxy(SecurityServiceMBean.class,
- mBeanServer,
+ server,
JMXUtil.getObjectName("geronimo.security:type=SecurityService"));
ArrayList list = new ArrayList();
@@ -88,7 +89,7 @@
while (iter.hasNext()) {
ObjectInstance instance = (ObjectInstance) iter.next();
- SecurityRealm sr = (SecurityRealm) MBeanProxyFactory.getProxy(SecurityRealm.class, mBeanServer, instance.getObjectName());
+ SecurityRealm sr = (SecurityRealm) MBeanProxyFactory.getProxy(SecurityRealm.class, server, instance.getObjectName());
if (realm.equals(sr.getRealmName())) {
AppConfigurationEntry[] ace = sr.getAppConfigurationEntry();
@@ -125,6 +126,6 @@
SecurityManager sm = System.getSecurityManager();
if (sm != null) sm.checkPermission(new AuthPermission("setLoginConfiguration"));
- mBeanServer = server;
+ mBeanServer.set(server);
}
}