[Jboss-cvs] JBossAS SVN: r56353 - trunk/security/src/main/org/jboss/security/config

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 28 16:47:08 EDT 2006


Author: anil.saldhana at jboss.com
Date: 2006-08-28 16:47:07 -0400 (Mon, 28 Aug 2006)
New Revision: 56353

Added:
   trunk/security/src/main/org/jboss/security/config/MappingInfo.java
   trunk/security/src/main/org/jboss/security/config/RoleMappingInfo.java
Modified:
   trunk/security/src/main/org/jboss/security/config/ApplicationPolicy.java
   trunk/security/src/main/org/jboss/security/config/ApplicationPolicyContainer.java
Log:
JBAS-3577: Role Mapping + Mapping Framework

Modified: trunk/security/src/main/org/jboss/security/config/ApplicationPolicy.java
===================================================================
--- trunk/security/src/main/org/jboss/security/config/ApplicationPolicy.java	2006-08-28 20:45:50 UTC (rev 56352)
+++ trunk/security/src/main/org/jboss/security/config/ApplicationPolicy.java	2006-08-28 20:47:07 UTC (rev 56353)
@@ -36,6 +36,7 @@
    private String name;
    private BaseAuthenticationInfo authenticationInfo;
    private AuthorizationInfo authorizationInfo;
+   private MappingInfo roleMappingInfo;
    
    //Parent PolicyConfig
    private PolicyConfig policyConfig;
@@ -83,8 +84,18 @@
    public void setAuthorizationInfo(AuthorizationInfo authorizationInfo)
    {
       this.authorizationInfo = authorizationInfo;
+   } 
+
+   public MappingInfo getRoleMappingInfo()
+   {
+      return roleMappingInfo;
    }
 
+   public void setRoleMappingInfo(MappingInfo roleMappingInfo)
+   {
+      this.roleMappingInfo = roleMappingInfo;
+   }
+
    public String getName()
    {
       return name;

Modified: trunk/security/src/main/org/jboss/security/config/ApplicationPolicyContainer.java
===================================================================
--- trunk/security/src/main/org/jboss/security/config/ApplicationPolicyContainer.java	2006-08-28 20:45:50 UTC (rev 56352)
+++ trunk/security/src/main/org/jboss/security/config/ApplicationPolicyContainer.java	2006-08-28 20:47:07 UTC (rev 56353)
@@ -37,7 +37,7 @@
 import org.jboss.security.auth.login.JASPIAuthenticationInfo;
 import org.jboss.security.auth.login.LoginModuleStackHolder;
 import org.jboss.security.authorization.config.AuthorizationConfigEntryHolder;
-import org.jboss.security.authorization.config.AuthorizationModuleEntry;
+import org.jboss.security.authorization.config.AuthorizationModuleEntry; 
 import org.jboss.xb.binding.GenericValueContainer;
 
 //$Id$
@@ -58,13 +58,17 @@
    String authName = null;  
     
    List authenticationModuleEntries = new ArrayList();
-   List authorizationModuleEntries = new ArrayList();
+   List authorizationModuleEntries = new ArrayList(); 
    Map loginModuleStackMap = new HashMap();
    
    boolean isJASPIAuthentication = false;
    boolean isJAASAuthentication = false;
    boolean isAuthorization = false;
+   boolean containsRoleMapping = false;
    
+   //Mapping Info Object
+   RoleMappingInfo roleMappingInfo = null;
+   
    /**
     * @see GenericValueContainer#addChild(javax.xml.namespace.QName, java.lang.Object)
     */
@@ -117,8 +121,24 @@
          if(!authorizationModuleEntries.contains(ameEntry))
             authorizationModuleEntries.add(ameEntry);
          isAuthorization = true;
+      } 
+   } 
+   
+   /**
+    * Mapping Objects are added to the Application Policy
+    * 
+    * @param obj
+    */
+   public void addMappingInfo(Object obj)
+   {
+      log.debug(obj);
+      if(obj instanceof RoleMappingInfo)
+      {
+         this.roleMappingInfo = (RoleMappingInfo)obj;
+         roleMappingInfo.setName(authName); 
+         this.containsRoleMapping = true;
       }
-   } 
+   }
 
    /**
     * @see GenericValueContainer#instantiate()
@@ -127,7 +147,7 @@
    {  
       info = new ApplicationPolicy(authName); 
       BaseAuthenticationInfo binfo = null;
-      AuthorizationInfo ainfo = null;
+      AuthorizationInfo ainfo = null; 
       
       if(isJAASAuthentication)
       {
@@ -147,6 +167,10 @@
          ainfo.add(authorizationModuleEntries);
          info.setAuthorizationInfo(ainfo);
       }
+      if(containsRoleMapping)
+      { 
+         info.setRoleMappingInfo(roleMappingInfo);
+      }
       return info; 
    }
 

Added: trunk/security/src/main/org/jboss/security/config/MappingInfo.java
===================================================================
--- trunk/security/src/main/org/jboss/security/config/MappingInfo.java	2006-08-28 20:45:50 UTC (rev 56352)
+++ trunk/security/src/main/org/jboss/security/config/MappingInfo.java	2006-08-28 20:47:07 UTC (rev 56353)
@@ -0,0 +1,64 @@
+/*
+ * JBoss, the OpenSource J2EE webOS
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.security.config;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.security.auth.AuthPermission;
+
+import org.jboss.security.mapping.config.MappingModuleEntry;
+
+/**
+ *  
+ *  @author <a href="mailto:Anil.Saldhana at jboss.org">Anil Saldhana</a>
+ *  @version $Revision$
+ *  @since  Aug 28, 2006
+ */
+public class MappingInfo
+{
+
+   public static final AuthPermission GET_CONFIG_ENTRY_PERM = new AuthPermission("getLoginConfiguration");
+   public static final AuthPermission SET_CONFIG_ENTRY_PERM = new AuthPermission("setLoginConfiguration");
+   protected String name;
+   protected ArrayList moduleEntries = new ArrayList();
+
+   public MappingInfo()
+   {
+      super();
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public void add(List moduleEntries)
+   {
+      this.moduleEntries.addAll(moduleEntries);
+   }
+
+   public void add(MappingModuleEntry ame)
+   {
+      moduleEntries.add(ame);
+   }
+
+   public MappingModuleEntry[] getMappingModuleEntry()
+   {
+      SecurityManager sm = System.getSecurityManager();
+      if( sm != null )
+         sm.checkPermission(GET_CONFIG_ENTRY_PERM); 
+      MappingModuleEntry[] entries = new MappingModuleEntry[moduleEntries.size()];
+      moduleEntries.toArray(entries);
+      return entries;
+   }
+   
+   public void setName(String n)
+   {
+      this.name = n;
+   } 
+}
\ No newline at end of file

Added: trunk/security/src/main/org/jboss/security/config/RoleMappingInfo.java
===================================================================
--- trunk/security/src/main/org/jboss/security/config/RoleMappingInfo.java	2006-08-28 20:45:50 UTC (rev 56352)
+++ trunk/security/src/main/org/jboss/security/config/RoleMappingInfo.java	2006-08-28 20:47:07 UTC (rev 56353)
@@ -0,0 +1,39 @@
+/*
+  * JBoss, Home of Professional Open Source
+  * Copyright 2005, JBoss Inc., and individual contributors as indicated
+  * by the @authors tag. See the copyright.txt in the distribution for a
+  * full listing of individual contributors.
+  *
+  * This is free software; you can redistribute it and/or modify it
+  * under the terms of the GNU Lesser General Public License as
+  * published by the Free Software Foundation; either version 2.1 of
+  * the License, or (at your option) any later version.
+  *
+  * This software is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  * Lesser General Public License for more details.
+  *
+  * You should have received a copy of the GNU Lesser General Public
+  * License along with this software; if not, write to the Free
+  * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+  * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+  */
+package org.jboss.security.config;
+ 
+
+//$Id: RoleMappingInfo.java 45942 2006-06-28 02:14:46Z asaldhana $
+
+/**
+ *  Holder for RoleMapping configuration
+ *  @author <a href="mailto:Anil.Saldhana at jboss.org">Anil Saldhana</a>
+ *  @since  August 24, 2006 
+ *  @version $Revision: 45942 $
+ */
+public class RoleMappingInfo extends MappingInfo
+{
+   public RoleMappingInfo(String name)
+   {
+      this.name = name;
+   }
+}




More information about the jboss-cvs-commits mailing list