[jboss-cvs] JBossAS SVN: r68017 - trunk/security/src/main/org/jboss/security/integration.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Dec 7 02:13:03 EST 2007


Author: anil.saldhana at jboss.com
Date: 2007-12-07 02:13:02 -0500 (Fri, 07 Dec 2007)
New Revision: 68017

Modified:
   trunk/security/src/main/org/jboss/security/integration/SecurityDomainObjectFactory.java
Log:
JBAS-5052: list the java:/jaas ctx

Modified: trunk/security/src/main/org/jboss/security/integration/SecurityDomainObjectFactory.java
===================================================================
--- trunk/security/src/main/org/jboss/security/integration/SecurityDomainObjectFactory.java	2007-12-07 00:40:32 UTC (rev 68016)
+++ trunk/security/src/main/org/jboss/security/integration/SecurityDomainObjectFactory.java	2007-12-07 07:13:02 UTC (rev 68017)
@@ -24,12 +24,16 @@
 import java.lang.reflect.InvocationHandler;
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
+import java.util.Enumeration;
 import java.util.Hashtable;
+import java.util.Map;
 
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.naming.Name;
+import javax.naming.NameClassPair;
 import javax.naming.NameParser;
+import javax.naming.NamingEnumeration;
 import javax.naming.OperationNotSupportedException;
 import javax.naming.spi.ObjectFactory;
 
@@ -87,7 +91,8 @@
          return SecurityConstants.JAAS_CONTEXT_ROOT + " Context proxy";
 
       if( methodName.equals("list") == true )
-         throw new OperationNotSupportedException();
+         return new DomainEnumeration(JNDIBasedSecurityManagement.securityMgrMap.keys(),
+               JNDIBasedSecurityManagement.securityMgrMap); 
       
       if(methodName.equals("bind") || methodName.equals("rebind"))
       {
@@ -130,4 +135,39 @@
       }
       return sdc;
    }
+   
+   class DomainEnumeration implements NamingEnumeration
+   {
+      Enumeration domains;
+      Map ctxMap;
+      DomainEnumeration(Enumeration domains, Map ctxMap)
+      {
+         this.domains = domains;
+         this.ctxMap = ctxMap;
+      }
+
+      public void close()
+      {
+      }
+      public boolean hasMoreElements()
+      {
+         return domains.hasMoreElements();
+      }
+      public boolean hasMore()
+      {
+         return domains.hasMoreElements();
+      }
+      public Object next()
+      {
+         String name = (String) domains.nextElement();
+         Object value = ctxMap.get(name);
+         String className = value.getClass().getName();
+         NameClassPair pair = new NameClassPair(name, className);
+         return pair;
+      }
+      public Object nextElement()
+      {
+         return domains.nextElement();
+      }
+   }  
 }
\ No newline at end of file




More information about the jboss-cvs-commits mailing list