org.opensaml.saml2.metadata.provider
Class EntityRoleFilter

java.lang.Object
  extended by org.opensaml.saml2.metadata.provider.EntityRoleFilter
All Implemented Interfaces:
MetadataFilter

public class EntityRoleFilter
extends Object
implements MetadataFilter

A filter the removes roles, from an entity descriptor. For those roles specified within the SAML metadata specification the role element QName is used to identify the role. For other roles, those that appear as <RoleDescriptor xsi:type="someRoleType"> the role schema type is used to identify the role. If the entity descriptor does not contain any roles after filter it may, optionally be removed as well. If the root element of the metadata document is an entity descriptor it will never be removed, regardless of of whether it still contains roles. If and entities descriptor does not contains any entity descriptors after filter it may, optionally, be removed as well. If the root element of the metadata document is an entities descriptor it will never be removed, regardless of of whether it still contains entity descriptors.


Field Summary
private  QName extRoleDescriptor
          QName of extension role element.
private  org.slf4j.Logger log
          Class logger.
private  boolean removeEmptyEntitiesDescriptors
          Whether to keep entities descriptors that contain no entity descriptors; default value: true.
private  boolean removeRolelessEntityDescriptors
          Whether to keep entity descriptors that contain no roles; default value: true.
private  List<QName> roleWhiteList
          List of roles that are NOT removed by this filter.
 
Constructor Summary
EntityRoleFilter(List<QName> keptRoles)
          Constructor.
 
Method Summary
 void doFilter(XMLObject metadata)
          Filters the given metadata, perhaps to remove elements that are not wanted.
protected  void filterEntitiesDescriptor(EntitiesDescriptor descriptor)
          Filters entities descriptor.
protected  void filterEntityDescriptor(EntityDescriptor descriptor)
          Filters entity descriptor roles.
 boolean getRemoveEmptyEntitiesDescriptors()
          Gets whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors.
 boolean getRemoveRolelessEntityDescriptors()
          Gets whether to remove an entity descriptor if it does not contain any roles after filtering.
protected  QName getRoleName(RoleDescriptor role)
          Gets the effective name for the role.
 List<QName> getRoleWhiteList()
          Gets the unmodifiable list of roles that are NOT removed by this filter.
 void setRemoveEmptyEntitiesDescriptors(boolean remove)
          Sets whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors.
 void setRemoveRolelessEntityDescriptors(boolean remove)
          Sets whether to remove an entity descriptor if it does not contain any roles after filtering.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

private final org.slf4j.Logger log
Class logger.


roleWhiteList

private List<QName> roleWhiteList
List of roles that are NOT removed by this filter.


removeRolelessEntityDescriptors

private boolean removeRolelessEntityDescriptors
Whether to keep entity descriptors that contain no roles; default value: true.


removeEmptyEntitiesDescriptors

private boolean removeEmptyEntitiesDescriptors
Whether to keep entities descriptors that contain no entity descriptors; default value: true.


extRoleDescriptor

private final QName extRoleDescriptor
QName of extension role element.

Constructor Detail

EntityRoleFilter

public EntityRoleFilter(List<QName> keptRoles)
Constructor.

Parameters:
keptRoles - list of roles NOT removed by this filter
Method Detail

getRoleWhiteList

public List<QName> getRoleWhiteList()
Gets the unmodifiable list of roles that are NOT removed by this filter.

Returns:
unmodifiable list of roles that are NOT removed by this filter

getRemoveRolelessEntityDescriptors

public boolean getRemoveRolelessEntityDescriptors()
Gets whether to remove an entity descriptor if it does not contain any roles after filtering.

Returns:
whether to remove an entity descriptor if it does not contain any roles after filtering

setRemoveRolelessEntityDescriptors

public void setRemoveRolelessEntityDescriptors(boolean remove)
Sets whether to remove an entity descriptor if it does not contain any roles after filtering.

Parameters:
remove - whether to remove an entity descriptor if it does not contain any roles after filtering

getRemoveEmptyEntitiesDescriptors

public boolean getRemoveEmptyEntitiesDescriptors()
Gets whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors.

Returns:
whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors

setRemoveEmptyEntitiesDescriptors

public void setRemoveEmptyEntitiesDescriptors(boolean remove)
Sets whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors.

Parameters:
remove - whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors

doFilter

public void doFilter(XMLObject metadata)
              throws FilterException
Filters the given metadata, perhaps to remove elements that are not wanted.

Specified by:
doFilter in interface MetadataFilter
Parameters:
metadata - the metadata to be filtered.
Throws:
FilterException - thrown if an error occurs during the filtering process

filterEntitiesDescriptor

protected void filterEntitiesDescriptor(EntitiesDescriptor descriptor)
                                 throws FilterException
Filters entities descriptor.

Parameters:
descriptor - entities descriptor to filter
Throws:
FilterException - thrown if an effective role name can not be determined

filterEntityDescriptor

protected void filterEntityDescriptor(EntityDescriptor descriptor)
                               throws FilterException
Filters entity descriptor roles.

Parameters:
descriptor - entity descriptor to filter
Throws:
FilterException - thrown if an effective role name can not be determined

getRoleName

protected QName getRoleName(RoleDescriptor role)
                     throws FilterException
Gets the effective name for the role. This is either the element QName for roles defined within the SAML metadata specification or the element schema type QName for those that are not.

Parameters:
role - role to get the effective name for
Returns:
effective name of the role
Throws:
FilterException - thrown if the effective role name can not be determined


Copyright © 1999-2012. All Rights Reserved.