
org.jboss.security.microcontainer.beans.metadata.MappingMetaData Maven / Gradle / Ivy
/*
* JBoss, Home of Professional Open Source.
* Copyright 2008, 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.microcontainer.beans.metadata;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
/**
*
* This class represents a {@code } or a {@code } configuration in an application policy and
* contains the mapping metadata information extracted by the XB parser.
*
*
* The following policy excerpt shows an example of {@code } configuration:
*
*
* <application-policy xmlns="urn:jboss:security-beans:1.0" name="TestPolicy1">
* <authentication>
* ...
* </authentication>
* ...
* <rolemapping>
* <mapping-module code="org.jboss.security.mapping.RoleMappingModule">
* <module-option name="mappingOption1">mapping.value1</module-option>
* <module-option name="mappingOption2">mapping.value2</module-option>
* </mapping-module>
* </rolemapping>
* ...
* </application-policy>
*
*
* Now an example of a {@code } configuration:
*
*
* <application-policy xmlns="urn:jboss:security-beans:1.0" name="TestPolicy1">
* <authentication>
* ...
* </authentication>
* ...
* <mapping>
* <mapping-module code="org.jboss.security.mapping.RoleMappingModule" type="role">
* <module-option name="mappingOption1">mapping.value1</module-option>
* <module-option name="mappingOption2">mapping.value2</module-option>
* </mapping-module>
* </mapping>
* ...
* </application-policy>
*
*
* As can be noticed, both configurations are very similar. As a matter of fact, any module in a {@code }
* configuration is actually registered as a {@code } module of type {@code "role"}.
*
* The metadata that results from the XB parsing is used by the microcontainer to create an instance of
* {@code IdentityTrustPolicyBean} and inject this instance into the {@code ApplicationPolicyBean} that represents the
* application policy as a whole.
*
*
* @author Stefan Guilhen
*/
public class MappingMetaData extends BasePolicyMetaData
{
/*
* (non-Javadoc)
*
* @see org.jboss.security.microcontainer.beans.metadata.BasePolicyMetaData#setModules(java.util.List)
*/
@Override
@XmlElement(name = "mapping-module", type = MappingModuleMetaData.class)
public void setModules(List modules)
{
super.modules = modules;
}
}