[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