Package org.jboss.security.authorization.config

Source Code of org.jboss.security.authorization.config.SecurityConfigObjectModelFactory

/*
  * 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.authorization.config;
import org.jboss.logging.Logger;
import org.jboss.security.audit.config.AuditProviderEntry;
import org.jboss.security.auth.login.LoginConfigObjectModelFactory;
import org.jboss.security.config.ModuleOption;
import org.jboss.security.config.ApplicationPolicy;
import org.jboss.security.config.AuditInfo;
import org.jboss.security.config.AuthorizationInfo;
import org.jboss.security.config.ControlFlag;
import org.jboss.security.config.IdentityTrustInfo;
import org.jboss.security.config.MappingInfo;
import org.jboss.security.identitytrust.config.IdentityTrustModuleEntry;
import org.jboss.security.mapping.config.MappingModuleEntry;
import org.jboss.util.StringPropertyReplacer;
import org.jboss.xb.binding.UnmarshallingContext;
import org.xml.sax.Attributes;

//$Id: SecurityConfigObjectModelFactory.java 69508 2008-01-31 19:55:23Z anil.saldhana@jboss.com $

/**
*  JBossXB Object Factory capable of parsing the security configuration
*  file that can include both authentication,authorization and mapping
*  module configuration
@author <a href="mailto:Anil.Saldhana@jboss.org">Anil Saldhana</a>
@since  Jun 9, 2006
@version $Revision: 69508 $
*/
public class SecurityConfigObjectModelFactory extends LoginConfigObjectModelFactory
{
   private static Logger log = Logger.getLogger(SecurityConfigObjectModelFactory.class);
   private boolean trace = log.isTraceEnabled();
  
   public Object newChild(ApplicationPolicy aPolicy,UnmarshallingContext navigator,
         String namespaceUri, String localName, Attributes attrs)
   {
      Object child = super.newChild(aPolicy,  navigator,
                             namespaceUri,localName,attrs);
      if(child == null && "authorization".equals(localName))
      {
         child = new AuthorizationInfo(aPolicy.getName())
      }
      else
         if(child == null && "rolemapping".equals(localName))
         {
            MappingInfo mi = new MappingInfo();
            mi.setName(aPolicy.getName());
            child = mi; 
         }
         else
            if(child == null && "audit".equals(localName))
            {
               AuditInfo ai = new AuditInfo(aPolicy.getName());
               child = ai;
            }
            else
               if(child == null && "identity-trust".equals(localName))
               {
                  IdentityTrustInfo ai = new IdentityTrustInfo(aPolicy.getName());
                  child = ai;
               }
      return child;
   }
  
   public Object newChild(AuthorizationInfo info, UnmarshallingContext navigator,
         String namespaceUri, String localName, Attributes attrs)
   {
      Object child = null;
      if( trace )
         log.trace("newChild.AuthorizationInfo, localName: "+localName);
      if("policy-module".equals(localName))
      {
         String code = attrs.getValue("code");
         code = StringPropertyReplacer.replaceProperties(code.trim());
         String flag = attrs.getValue("flag");
         if(flag != null)
            flag = StringPropertyReplacer.replaceProperties(flag.trim());
         if(flag == null)
            flag = "REQUIRED";
         else
            flag = flag.toUpperCase();
         AuthorizationModuleEntry entry = new AuthorizationModuleEntry(code);
         if("REQUIRED".equals(flag))
            entry.setControlFlag(ControlFlag.REQUIRED);
         else
            if("REQUISITE".equals(flag))
              entry.setControlFlag(ControlFlag.REQUISITE);
            else
               if("SUFFICIENT".equals(flag))
                  entry.setControlFlag(ControlFlag.SUFFICIENT);
               else
                  entry.setControlFlag(ControlFlag.OPTIONAL);
         child = entry;
         if( trace )
            log.trace("newChild.AuthorizationInfo, policy-module code: "+code);
      }
     
      return child;
   }
  
   public Object newChild(AuthorizationModuleEntry entry, UnmarshallingContext navigator,
         String namespaceUri, String localName, Attributes attrs)
   {
      Object child = null;
      if( trace )
         log.trace("newChild.AppConfigurationEntryHolder, localName: "+localName);
      if("module-option".equals(localName))
      {
         String name = attrs.getValue("name");        
         child = new ModuleOption(name);
         if( trace )
            log.trace("newChild.AuthModuleEntry, module-option name: "+name);
      }
     
      return child;
   }
  
   public void addChild(ApplicationPolicy aPolicy, AuthorizationInfo authInfo,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      aPolicy.setAuthorizationInfo(authInfo)
      if(trace)
         log.trace("addChild.ApplicationPolicy, name: " + aPolicy.getName());
   }
  
   public void addChild(AuthorizationInfo authInfo, AuthorizationConfigEntryHolder entryInfo,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      AuthorizationModuleEntry entry = entryInfo.getEntry();
      authInfo.add(entry);
      if( trace )
         log.trace("addChild.AuthorizationInfo, name: "+entry.getPolicyModuleName());
   }
  
   public void addChild(AuthorizationConfigEntryHolder entryInfo, ModuleOption option,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      entryInfo.addOption(option);
      if( trace )
         log.trace("addChild.AuthorizationConfigEntryHolder, name: "+option.getName());
   }
  
   public void addChild(AuthorizationInfo authInfo, AuthorizationModuleEntry entry ,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      authInfo.add(entry);
   }
  
   public void addChild(AuthorizationModuleEntry entry , ModuleOption option,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      entry.add(option);
      if( trace )
         log.trace("addChild.AuthorizationModuleEntry, name: "+option.getName());
   }
  
   //RoleMapping
   public Object newChild(MappingInfo info, UnmarshallingContext navigator,
         String namespaceUri, String localName, Attributes attrs)
   {
      Object child = null;
      if( trace )
         log.trace("newChild.RoleMappingInfo, localName: "+localName);
      if("mapping-module".equals(localName))
      {
         String code = attrs.getValue("code");
         code = StringPropertyReplacer.replaceProperties(code.trim());
         MappingModuleEntry entry = new MappingModuleEntry(code)
         child = entry;
         if( trace )
            log.trace("newChild.RoleMappingInfo, mapping-module code: "+code);
      }
     
      return child;
   }
  
   public Object newChild(MappingModuleEntry entry,
         UnmarshallingContext navigator,
         String namespaceUri, String localName, Attributes attrs)
   {
      Object child = null;
      if( trace )
         log.trace("newChild.MappingModuleEntry, localName: "+localName);
      if("module-option".equals(localName))
      {
         String name = attrs.getValue("name");        
         child = new ModuleOption(name);
         if( trace )
            log.trace("newChild.MappingModuleEntry, module-option name: "+name);
      }
     
      return child;
   }
  
   public void addChild(ApplicationPolicy aPolicy, MappingInfo authInfo,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      aPolicy.setRoleMappingInfo(authInfo)
      if(trace)
         log.trace("addChild.ApplicationPolicy, name: " + aPolicy.getName());
   }
  
   public void addChild(MappingModuleEntry entry , ModuleOption option,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      entry.add(option);
      if( trace )
         log.trace("addChild.MappingModuleEntry, name: "+option.getName());
   }
  
   public void addChild(MappingInfo authInfo, MappingModuleEntry entry ,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      authInfo.add(entry);
   }
  
   //Audit Info
   public Object newChild(AuditInfo info, UnmarshallingContext navigator,
         String namespaceUri, String localName, Attributes attrs)
   {
      Object child = null;
      if( trace )
         log.trace("newChild.AuditInfo, localName: "+localName);
      if("provider-module".equals(localName))
      {
         String code = attrs.getValue("code");
         code = StringPropertyReplacer.replaceProperties(code.trim());
         AuditProviderEntry entry = new AuditProviderEntry(code)
         child = entry;
         if( trace )
            log.trace("newChild.AuditInfo, provider-module code: "+code);
      }
     
      return child;
   }
  
   public Object newChild(AuditProviderEntry entry,
         UnmarshallingContext navigator,
         String namespaceUri, String localName, Attributes attrs)
   {
      Object child = null;
      if( trace )
         log.trace("newChild.AuditProviderEntry, localName: "+localName);
      if("module-option".equals(localName))
      {
         String name = attrs.getValue("name");        
         child = new ModuleOption(name);
         if( trace )
            log.trace("newChild.AuditProviderEntry, module-option name: "+name);
      }
     
      return child;
  
  
   public void addChild(ApplicationPolicy aPolicy, AuditInfo auditInfo,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      aPolicy.setAuditInfo(auditInfo) ;
      if(trace)
         log.trace("addChild.ApplicationPolicy, name: " + aPolicy.getName());
   }
  
   public void addChild(AuditProviderEntry entry , ModuleOption option,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      entry.add(option);
      if( trace )
         log.trace("addChild.MappingModuleEntry, name: "+option.getName());
   }
  
   public void addChild(AuditInfo auditInfo, AuditProviderEntry entry ,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      auditInfo.add(entry);
   }
  
   //Identity Trust
   public Object newChild(IdentityTrustInfo info, UnmarshallingContext navigator,
         String namespaceUri, String localName, Attributes attrs)
   {
      Object child = null;
      if( trace )
         log.trace("newChild.IdentityTrustInfo, localName: "+localName);
      if("trust-module".equals(localName))
      {
         String code = attrs.getValue("code");
         code = StringPropertyReplacer.replaceProperties(code.trim());
        
         String flag = attrs.getValue("flag");
         if(flag != null)
           flag = StringPropertyReplacer.replaceProperties(flag.trim());
         if(flag == null)
            flag = "REQUIRED";
         else
            flag = flag.toUpperCase();
         IdentityTrustModuleEntry entry = new IdentityTrustModuleEntry(code)
         if("REQUIRED".equals(flag))
            entry.setControlFlag(ControlFlag.REQUIRED);
         else
            if("REQUISITE".equals(flag))
              entry.setControlFlag(ControlFlag.REQUISITE);
            else
               if("SUFFICIENT".equals(flag))
                  entry.setControlFlag(ControlFlag.SUFFICIENT);
               else
                  entry.setControlFlag(ControlFlag.OPTIONAL);
        
         child = entry;
         if( trace )
            log.trace("newChild.IdentityTrustInfo, trust-module code: "+code);
      }
     
      return child;
   }
  
   public Object newChild(IdentityTrustModuleEntry entry,
         UnmarshallingContext navigator,
         String namespaceUri, String localName, Attributes attrs)
   {
      Object child = null;
      if( trace )
         log.trace("newChild.trustProviderEntry, localName: "+localName);
      if("module-option".equals(localName))
      {
         String name = attrs.getValue("name");        
         child = new ModuleOption(name);
         if( trace )
            log.trace("newChild.trustProviderEntry, module-option name: "+name);
      }
     
      return child;
  
  
   public void addChild(ApplicationPolicy aPolicy, IdentityTrustInfo auditInfo,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      aPolicy.setIdentityTrustInfo(auditInfo) ;
      if(trace)
         log.trace("addChild.ApplicationPolicy, name: " + aPolicy.getName());
   }
  
   public void addChild(IdentityTrustModuleEntry entry , ModuleOption option,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      entry.add(option);
      if( trace )
         log.trace("addChild.MappingModuleEntry, name: "+option.getName());
   }
  
   public void addChild(IdentityTrustInfo auditInfo, IdentityTrustModuleEntry entry ,
         UnmarshallingContext navigator, String namespaceURI, String localName)
   {
      auditInfo.add(entry);
   }
}
TOP

Related Classes of org.jboss.security.authorization.config.SecurityConfigObjectModelFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.