[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