[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