[jboss-cvs] JBossAS SVN: r61956 - projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/plugins.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Apr 1 00:42:50 EDT 2007
Author: anil.saldhana at jboss.com
Date: 2007-04-01 00:42:49 -0400 (Sun, 01 Apr 2007)
New Revision: 61956
Modified:
projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/plugins/JBossSecurityContext.java
Log:
update util, mapping and runas
Modified: projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/plugins/JBossSecurityContext.java
===================================================================
--- projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/plugins/JBossSecurityContext.java 2007-04-01 04:41:59 UTC (rev 61955)
+++ projects/security/security-jboss-sx/trunk/src/main/org/jboss/security/plugins/JBossSecurityContext.java 2007-04-01 04:42:49 UTC (rev 61956)
@@ -7,8 +7,7 @@
package org.jboss.security.plugins;
import java.security.Principal;
-import java.security.acl.Group;
-import java.util.ArrayList;
+import java.security.acl.Group;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
@@ -16,18 +15,19 @@
import org.jboss.logging.Logger;
import org.jboss.security.AuthenticationManager;
import org.jboss.security.AuthorizationManager;
+import org.jboss.security.RunAs;
import org.jboss.security.SecurityConstants;
import org.jboss.security.SecurityContext;
+import org.jboss.security.SecurityContextUtil;
import org.jboss.security.SubjectInfo;
import org.jboss.security.Util;
import org.jboss.security.audit.AuditManager;
-import org.jboss.security.audit.SecurityAuditManager;
-import org.jboss.security.config.ApplicationPolicy;
-import org.jboss.security.config.MappingInfo;
-import org.jboss.security.mapping.MappingContext;
-import org.jboss.security.mapping.MappingProvider;
-import org.jboss.security.mapping.config.MappingModuleEntry;
+import org.jboss.security.audit.SecurityAuditManager;
+import org.jboss.security.mapping.MappingManager;
+import org.jboss.security.plugins.mapping.JBossMappingManager;
+import static org.jboss.security.SecurityConstants.ROLES_IDENTIFIER;
+
/**
* Implementation of the Security Context for the JBoss AS
* @author <a href="mailto:Anil.Saldhana at jboss.org">Anil Saldhana</a>
@@ -40,14 +40,14 @@
protected static final Logger log = Logger.getLogger(JBossSecurityContext.class);
protected boolean trace = log.isTraceEnabled();
- protected Map contextData = new HashMap();
+ protected Map<String,Object> contextData = new HashMap<String,Object>();
protected String securityDomain = SecurityConstants.DEFAULT_APPLICATION_POLICY;
protected SubjectInfo subjectInfo = null;
+
+ protected RunAs configuredRunAs = null;
- public static final String ROLES = SecurityConstants.ROLES_IDENTIFIER;
-
public JBossSecurityContext(String securityDomain)
{
this.securityDomain = securityDomain;
@@ -72,7 +72,7 @@
/**
* @see SecurityContext#getData()
*/
- public Map getData()
+ public Map<String,Object> getData()
{
return contextData;
}
@@ -98,48 +98,39 @@
{
return AuditManager.getAuditContext(securityDomain);
}
+
+ /**
+ * @see SecurityContext#getMappingManager()
+ */
+ public MappingManager getMappingManager()
+ {
+ return new JBossMappingManager(this.securityDomain);
+ }
/**
- * @see SecurityContext#getMappingContext(String)
+ * @see SecurityContext#getRunAs()
*/
- public MappingContext getMappingContext(Class mappingType)
+ public RunAs getRunAs()
{
- //Apply Mapping Logic
- ApplicationPolicy aPolicy = Util.getApplicationPolicy(securityDomain);
-
- if(aPolicy == null)
- {
- String defaultDomain = SecurityConstants.DEFAULT_APPLICATION_POLICY;
- if(trace)
- log.trace("Application Policy not found for domain=" + securityDomain +
- ".Mapping framework will use the default domain:" + defaultDomain);
- aPolicy = Util.getApplicationPolicy(defaultDomain);
- }
- if(aPolicy == null )
- throw new IllegalStateException("Application Policy is null for the security domain:"
- + securityDomain);
- MappingInfo rmi = null;
- MappingContext mc = null;
- if(mappingType == Group.class)
- {
- rmi = aPolicy.getRoleMappingInfo();
- if(rmi != null)
- {
- MappingModuleEntry[] mpe = rmi.getMappingModuleEntry();
- ArrayList al = new ArrayList();
-
- for(int i = 0 ; i < mpe.length; i++)
- {
- MappingProvider mp = getMappingProvider(mpe[i]);
- if(mp != null)
- al.add(mp);
- }
- mc = new MappingContext(al);
- }
- }
- return mc;
+ return this.configuredRunAs;
+ }
+
+ /**
+ * @see SecurityContext#setRunAs(RunAs)
+ */
+ public void setRunAs(RunAs runAs)
+ {
+ this.configuredRunAs = runAs;
}
+ /**
+ * @see SecurityContext#getUtil()
+ */
+ public SecurityContextUtil getUtil()
+ {
+ return SecurityContextFactory.createUtil();
+ }
+
//Value Added Methods
public void setSubjectInfo(SubjectInfo si)
@@ -152,9 +143,9 @@
Group mergedRoles = roles;
if(!replace)
{
- mergedRoles = mergeGroups( (Group)contextData.get(ROLES), roles);
+ mergedRoles = mergeGroups( (Group)contextData.get(ROLES_IDENTIFIER), roles);
}
- contextData.put(ROLES, mergedRoles);
+ contextData.put(ROLES_IDENTIFIER, mergedRoles);
}
private Group mergeGroups(Group a, Group b)
@@ -171,21 +162,14 @@
return newGroup;
}
- private MappingProvider getMappingProvider(MappingModuleEntry mme)
- {
- ClassLoader tcl = Thread.currentThread().getContextClassLoader();
- MappingProvider mp = null;
- try
- {
- Class cl = tcl.loadClass(mme.getMappingModuleName());
- mp = (MappingProvider)cl.newInstance();
- mp.init(mme.getOptions());
- }
- catch(Exception e)
- {
- if(trace)
- log.trace("Error in getting Mapping Provider",e);
- }
- return mp;
- }
+
+ @Override
+ protected Object clone() throws CloneNotSupportedException
+ {
+ JBossSecurityContext jsc = (JBossSecurityContext) super.clone();
+ if(jsc != null)
+ jsc.contextData = (Map<String, Object>) ((HashMap)contextData).clone();
+ return super.clone();
+ }
+
}
More information about the jboss-cvs-commits
mailing list