Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
    * JBoss, Home of Professional Open Source.
    * Copyright 2006, Red Hat Middleware LLC, and individual contributors
    * as indicated by the @author tags. See the copyright.txt file 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.mapping.providers;
  
 import java.util.Map;
 import java.util.Set;
 
A Role Mapping Module that takes into consideration a principal to roles mapping that can be done in the assembly descriptor of jboss.xml, jboss-web.xml and jboss-app.xml

Author(s):
Anil Saldhana
Version:
$Revision$
Since:
Nov 1, 2006
 
 {
    private static Logger log = Logger.getLogger(DeploymentRolesMappingProvider.class);
    private boolean trace = .isTraceEnabled();
    
    private MappingResult<RoleGroupresult;
 
    public void init(Map<String,Objectoptions)
    { 
    } 
 
    public void setMappingResult(MappingResult<RoleGroupres)
    { 
        = res;
    }

   
Obtains the deployment roles via the context map and applies it on the mappedObject

  
    @SuppressWarnings("unchecked")
    public void performMapping(Map<String,ObjectmapRoleGroup mappedObject)
    {  
       if(map == null || map.isEmpty())
          throw new IllegalArgumentException("Context Map is null or empty");
     
       //Obtain the principal to roles mapping
       Principal principal = (Principalmap.get(.);
       
       Set<PrincipalsubjectPrincipals = (Set<Principal>) map.get(.);
       if()
       {
          .trace("Principal="+principal+":principalRolesMap="+principalRolesMap+":");
          .trace("subjectPrincipals="+subjectPrincipals);
       }
       if(principalRolesMap == null || principalRolesMap.isEmpty())
       {
          .setMappedObject(mappedObject);
          return ; // No Mapping
       }
       
       if(principal != null)
       {
          mappedObject = mapGroup(principalprincipalRolesMapmappedObject);
       }
       
       if(subjectPrincipals != null)
       {
          for(Principal psubjectPrincipals)
          {
             if(p instanceof Group)
                continue;
            mappedObject = mapGroup(pprincipalRolesMapmappedObject);
         } 
      }
          
      .setMappedObject(mappedObject);
   } 
    
   
   public boolean supports(Class<?> p)
   {
      if(RoleGroup.class.isAssignableFrom(p))
         return true;
      return false;
   }
   private RoleGroup mapGroup(Principal principalMap<StringSet<String>> principalRolesMap,
         RoleGroup mappedObject)
   {
      Set<Stringroleset = (Set<String>)principalRolesMap.get(principal.getName());
      if(roleset != null)
      {
         RoleGroup newRoles = new SimpleRoleGroup(.);
         
         if(roleset != null)
         {
            for(String r:roleset)
            {
               newRoles.addRole(new SimpleRole(r));            
            }
         }
         
         mappedObject.clearRoles();
         mappedObject.getRoles().addAll(newRoles.getRoles()); 
      } 
      return mappedObject;
   } 
New to GrepCode? Check out our FAQ X