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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Dec 10 23:58:08 EST 2007


Author: anil.saldhana at jboss.com
Date: 2007-12-10 23:58:07 -0500 (Mon, 10 Dec 2007)
New Revision: 68131

Modified:
   trunk/security/src/main/org/jboss/security/integration/JNDIBasedSecurityManagement.java
Log:
reduce jndi lookup and cache the security managers

Modified: trunk/security/src/main/org/jboss/security/integration/JNDIBasedSecurityManagement.java
===================================================================
--- trunk/security/src/main/org/jboss/security/integration/JNDIBasedSecurityManagement.java	2007-12-11 03:57:05 UTC (rev 68130)
+++ trunk/security/src/main/org/jboss/security/integration/JNDIBasedSecurityManagement.java	2007-12-11 04:58:07 UTC (rev 68131)
@@ -79,11 +79,16 @@
    protected boolean enableIdentity = false;
    
    /** Enable the Audit feature */
-   protected boolean enableAudit = true;
+   protected boolean enableAudit = true; 
    
-   
    private CachePolicy cachePolicy = null;
    
+   private ConcurrentHashMap<String,AuthenticationManager> authMgrMap = new ConcurrentHashMap<String,AuthenticationManager>();
+   private ConcurrentHashMap<String,AuthorizationManager> authzMgrMap = new ConcurrentHashMap<String,AuthorizationManager>();
+   private ConcurrentHashMap<String,MappingManager> mappingMgrMap = new ConcurrentHashMap<String,MappingManager>();
+   private ConcurrentHashMap<String,AuditManager> auditMgrMap = new ConcurrentHashMap<String,AuditManager>();
+   private ConcurrentHashMap<String,IdentityTrustManager> idmMgrMap = new ConcurrentHashMap<String,IdentityTrustManager>();
+   
    public JNDIBasedSecurityManagement()
    {   
    } 
@@ -94,7 +99,14 @@
       try
       { 
          if(this.enableAudit)
-            auditManager = (AuditManager) lookUpJNDI(securityDomain + "/auditMgr");  
+         {
+            auditManager = this.auditMgrMap.get(securityDomain);
+            if(auditManager == null)
+            {
+               auditManager = (AuditManager) lookUpJNDI(securityDomain + "/auditMgr");
+               this.auditMgrMap.put(securityDomain, auditManager); 
+            } 
+         }  
       }
       catch(Exception e)
       {
@@ -108,7 +120,12 @@
       AuthenticationManager am = null;
       try
       {
-         am = (AuthenticationManager) lookUpJNDI(securityDomain + "/authenticationMgr");
+         am = this.authMgrMap.get(securityDomain);
+         if(am == null)
+         {
+            am = (AuthenticationManager) lookUpJNDI(securityDomain + "/authenticationMgr");
+            this.authMgrMap.put(securityDomain, am); 
+         }
       }
       catch(Exception e)
       {
@@ -122,7 +139,12 @@
       AuthorizationManager am = null;
       try
       {
-         am = (AuthorizationManager) lookUpJNDI(securityDomain + "/authorizationMgr");
+         am = this.authzMgrMap.get(securityDomain);
+         if(am == null)
+         {
+            am = (AuthorizationManager) lookUpJNDI(securityDomain + "/authorizationMgr");
+            this.authzMgrMap.put(securityDomain, am);
+         }
       }
       catch(Exception e)
       {
@@ -137,7 +159,14 @@
       try
       {
          if(this.enableIdentity)
-            am = (IdentityTrustManager) lookUpJNDI(securityDomain + "/identityTrustMgr");
+         {
+            am = this.idmMgrMap.get(securityDomain);
+            if(am == null)
+            {
+               am = (IdentityTrustManager) lookUpJNDI(securityDomain + "/identityTrustMgr");
+               this.idmMgrMap.put(securityDomain, am); 
+            } 
+         }
       }
       catch(Exception e)
       {
@@ -151,7 +180,12 @@
       MappingManager am = null;
       try
       {
-         am = (MappingManager) lookUpJNDI(securityDomain + "/mappingMgr");
+         am = this.mappingMgrMap.get(securityDomain);
+         if(am == null)
+         {
+            am = (MappingManager) lookUpJNDI(securityDomain + "/mappingMgr");
+            this.mappingMgrMap.put(securityDomain, am); 
+         }
       }
       catch(Exception e)
       {




More information about the jboss-cvs-commits mailing list