[jboss-cvs] JBossAS SVN: r103939 - projects/security/security-jboss-sx/branches/2.0.4.SP3_JBPAPP-4086/identity/src/main/java/org/jboss/security/identity/plugins.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Apr 13 16:54:00 EDT 2010


Author: mmoyses
Date: 2010-04-13 16:53:59 -0400 (Tue, 13 Apr 2010)
New Revision: 103939

Modified:
   projects/security/security-jboss-sx/branches/2.0.4.SP3_JBPAPP-4086/identity/src/main/java/org/jboss/security/identity/plugins/IdentityFactory.java
Log:
JBPAPP-4086: backporting SECURITY-496

Modified: projects/security/security-jboss-sx/branches/2.0.4.SP3_JBPAPP-4086/identity/src/main/java/org/jboss/security/identity/plugins/IdentityFactory.java
===================================================================
--- projects/security/security-jboss-sx/branches/2.0.4.SP3_JBPAPP-4086/identity/src/main/java/org/jboss/security/identity/plugins/IdentityFactory.java	2010-04-13 20:51:58 UTC (rev 103938)
+++ projects/security/security-jboss-sx/branches/2.0.4.SP3_JBPAPP-4086/identity/src/main/java/org/jboss/security/identity/plugins/IdentityFactory.java	2010-04-13 20:53:59 UTC (rev 103939)
@@ -24,11 +24,12 @@
 import java.lang.reflect.Constructor;
 import java.security.Principal;
 import java.security.acl.Group;
+import java.util.Map;
+import java.util.WeakHashMap;
 
 import org.jboss.security.identity.Identity;
 import org.jboss.security.identity.Role;
 
-//$Id$
 
 /**
  *  Factory to create customized principal and group
@@ -44,6 +45,8 @@
    public static final String PRINCIPAL_CLASS = "org.jboss.security.SimplePrincipal";
 
    public static final String GROUP_CLASS = "org.jboss.security.SimpleGroup";
+   
+   private static Map<String, Class<?> > clazzMap = new WeakHashMap<String, Class<?>>();
 
    public static Principal createPrincipal(String name) throws Exception
    {
@@ -87,7 +90,12 @@
 
    private static Object loadClass(String className, String ctorArg) throws Exception
    {
-      Class<?> clazz = SecurityActions.getClass(className);
+      Class<?> clazz = clazzMap.get(className);
+      if( clazz == null )
+      {
+         clazz = SecurityActions.getClass(className);
+         clazzMap.put(className, clazz); 
+      }
       Constructor<?> ctr = clazz.getConstructor(new Class[]
       {String.class});
       return ctr.newInstance(new Object[]
@@ -96,7 +104,13 @@
 
    private static Object loadClass(String className, String ctorArg1, String ctorArg2) throws Exception
    {
-      Class<?> clazz = SecurityActions.getClass(className);
+      Class<?> clazz = clazzMap.get(className);
+      if( clazz == null )
+      {
+         clazz = SecurityActions.getClass(className);
+         clazzMap.put(className, clazz); 
+      }
+      
       Constructor<?> ctr = clazz.getConstructor(new Class[]
       {String.class, String.class});
       return ctr.newInstance(new Object[]
@@ -105,11 +119,15 @@
 
    private static Object loadClass(String className, String ctorArg1, Role ctorArg2) throws Exception
    {
-      Class<?> clazz = SecurityActions.getClass(className);
+      Class<?> clazz = clazzMap.get(className);
+      if( clazz == null )
+      {
+         clazz = SecurityActions.getClass(className);
+         clazzMap.put(className, clazz); 
+      }
       Constructor<?> ctr = clazz.getConstructor(new Class[]
       {String.class, Role.class});
       return ctr.newInstance(new Object[]
       {ctorArg1, ctorArg2});
    }
-
 }
\ No newline at end of file




More information about the jboss-cvs-commits mailing list