[jboss-cvs] Picketbox SVN: r487 - in trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security: config and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Dec 20 13:46:29 EST 2013


Author: sguilhen at redhat.com
Date: 2013-12-20 13:46:28 -0500 (Fri, 20 Dec 2013)
New Revision: 487

Modified:
   trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/authorization/modules/AbstractAuthorizationModule.java
   trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/SecurityConfiguration.java
   trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/parser/AuthenticationConfigParser.java
   trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/parser/ModuleOptionParser.java
   trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/util/xml/JBossEntityResolver.java
Log:
SECURITY-777: Make static maps thread safe

Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/authorization/modules/AbstractAuthorizationModule.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/authorization/modules/AbstractAuthorizationModule.java	2013-12-17 12:05:00 UTC (rev 486)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/authorization/modules/AbstractAuthorizationModule.java	2013-12-20 18:46:28 UTC (rev 487)
@@ -24,6 +24,7 @@
 import java.util.HashMap;
 import java.util.Map;
 import java.util.StringTokenizer;
+import java.util.concurrent.ConcurrentHashMap;
 
 import javax.security.auth.Subject;
 import javax.security.auth.callback.CallbackHandler;
@@ -55,10 +56,10 @@
    
    /** Map of delegates for the various layers */
    protected Map<ResourceType,String> delegateMap = new HashMap<ResourceType,String>();
-   
+
    /** A map that is available to reduce the loadClass synchronization */
-   protected static Map<String, Class<?> > clazzMap = new HashMap<String, Class<?> >();
-   
+   protected static Map<String, Class<?>> clazzMap = new ConcurrentHashMap<String, Class<?>>();
+
    /**
     * @see AuthorizationModule#authorize(Resource)
     */

Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/SecurityConfiguration.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/SecurityConfiguration.java	2013-12-17 12:05:00 UTC (rev 486)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/SecurityConfiguration.java	2013-12-20 18:46:28 UTC (rev 487)
@@ -9,6 +9,8 @@
 import java.security.Key;
 import java.security.spec.AlgorithmParameterSpec;
 import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import org.jboss.security.PicketBoxMessages;
 
@@ -26,7 +28,7 @@
    /**
     * Map of Application Policies keyed in by name
     */
-   private static HashMap<String,ApplicationPolicy> appPolicies = new HashMap<String,ApplicationPolicy>();
+   private static final Map<String,ApplicationPolicy> appPolicies = new ConcurrentHashMap<String, ApplicationPolicy>();
    private static String cipherAlgorithm;
    private static int iterationCount;
    private static String salt;

Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/parser/AuthenticationConfigParser.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/parser/AuthenticationConfigParser.java	2013-12-17 12:05:00 UTC (rev 486)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/parser/AuthenticationConfigParser.java	2013-12-20 18:46:28 UTC (rev 487)
@@ -21,12 +21,7 @@
  */
 package org.jboss.security.config.parser;
 
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 import javax.security.auth.login.AppConfigurationEntry;
 import javax.security.auth.login.AppConfigurationEntry.LoginModuleControlFlag;
@@ -69,27 +64,29 @@
 public class AuthenticationConfigParser implements XMLStreamConstants
 {
 
-   public static Map<String, String> loginModulesMap = new HashMap<String, String>();
+   public static final Map<String, String> loginModulesMap;
 
    static
    {
-      loginModulesMap.put("Client", ClientLoginModule.class.getName());
-      loginModulesMap.put("Certificate", BaseCertLoginModule.class.getName());
-      loginModulesMap.put("CertificateRoles", CertRolesLoginModule.class.getName());
-      loginModulesMap.put("DatabaseCertificate", DatabaseCertLoginModule.class.getName());
-      loginModulesMap.put("Database", DatabaseServerLoginModule.class.getName());
-      loginModulesMap.put("Identity", IdentityLoginModule.class.getName());
-      loginModulesMap.put("Ldap", LdapLoginModule.class.getName());
-      loginModulesMap.put("LdapExtended", LdapExtLoginModule.class.getName());
-      loginModulesMap.put("RoleMapping", RoleMappingLoginModule.class.getName());
-      loginModulesMap.put("RunAs", RunAsLoginModule.class.getName());
-      loginModulesMap.put("Simple", SimpleServerLoginModule.class.getName());
-      loginModulesMap.put("UsersRoles", UsersRolesLoginModule.class.getName());
-      loginModulesMap.put("CallerIdentity", CallerIdentityLoginModule.class.getName());
-      loginModulesMap.put("ConfiguredIdentity", ConfiguredIdentityLoginModule.class.getName());
-      loginModulesMap.put("JaasSecurityDomainIdentity", JaasSecurityDomainIdentityLoginModule.class.getName());
-      loginModulesMap.put("PBEIdentity", PBEIdentityLoginModule.class.getName());
-      loginModulesMap.put("SecureIdentity", SecureIdentityLoginModule.class.getName());
+      final Map<String, String> loginModules = new HashMap<String,String>();
+      loginModules.put("Client", ClientLoginModule.class.getName());
+      loginModules.put("Certificate", BaseCertLoginModule.class.getName());
+      loginModules.put("CertificateRoles", CertRolesLoginModule.class.getName());
+      loginModules.put("DatabaseCertificate", DatabaseCertLoginModule.class.getName());
+      loginModules.put("Database", DatabaseServerLoginModule.class.getName());
+      loginModules.put("Identity", IdentityLoginModule.class.getName());
+      loginModules.put("Ldap", LdapLoginModule.class.getName());
+      loginModules.put("LdapExtended", LdapExtLoginModule.class.getName());
+      loginModules.put("RoleMapping", RoleMappingLoginModule.class.getName());
+      loginModules.put("RunAs", RunAsLoginModule.class.getName());
+      loginModules.put("Simple", SimpleServerLoginModule.class.getName());
+      loginModules.put("UsersRoles", UsersRolesLoginModule.class.getName());
+      loginModules.put("CallerIdentity", CallerIdentityLoginModule.class.getName());
+      loginModules.put("ConfiguredIdentity", ConfiguredIdentityLoginModule.class.getName());
+      loginModules.put("JaasSecurityDomainIdentity", JaasSecurityDomainIdentityLoginModule.class.getName());
+      loginModules.put("PBEIdentity", PBEIdentityLoginModule.class.getName());
+      loginModules.put("SecureIdentity", SecureIdentityLoginModule.class.getName());
+      loginModulesMap = Collections.unmodifiableMap(loginModules);
    }
 
    /**

Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/parser/ModuleOptionParser.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/parser/ModuleOptionParser.java	2013-12-17 12:05:00 UTC (rev 486)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/config/parser/ModuleOptionParser.java	2013-12-20 18:46:28 UTC (rev 487)
@@ -47,9 +47,9 @@
  */
 public class ModuleOptionParser implements XMLStreamConstants
 {
-   private static transient Map<String, ParserNamespaceSupport> parsers = new HashMap<String,ParserNamespaceSupport>();
+   private static final Map<String, ParserNamespaceSupport> parsers = Collections.synchronizedMap(new HashMap<String, ParserNamespaceSupport>());
    
-   public ModuleOptionParser()
+   static
    { 
       parsers.put("urn:jboss:user-roles", new UsersConfigParser());
       parsers.put("urn:jboss:java-properties", new JavaPropertiesConfigParser()); 

Modified: trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/util/xml/JBossEntityResolver.java
===================================================================
--- trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/util/xml/JBossEntityResolver.java	2013-12-17 12:05:00 UTC (rev 486)
+++ trunk/security-jboss-sx/jbosssx/src/main/java/org/jboss/security/util/xml/JBossEntityResolver.java	2013-12-20 18:46:28 UTC (rev 487)
@@ -56,7 +56,7 @@
 public class JBossEntityResolver implements EntityResolver
 {
    /** A class wide Map<String, String> of publicId/systemId to dtd/xsd file */
-   private static Map entities = new ConcurrentHashMap ();
+   private static final Map entities = new ConcurrentHashMap ();
    /** A class flag indicating whether an attempt to resolve a systemID as a
     non-file URL should produce a warning rather than a trace level log msg.
     */



More information about the jboss-cvs-commits mailing list