Class EntityRoleFilter
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
org.opensaml.saml.metadata.resolver.filter.AbstractMetadataFilter
org.opensaml.saml.metadata.resolver.filter.impl.EntityRoleFilter
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,MetadataFilter
A filter that 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
FieldsModifier and TypeFieldDescriptionprivate final QNameQName of extension role element.private final org.slf4j.LoggerClass logger.private booleanWhether to keep entities descriptors that contain no entity descriptors; default value: true.private booleanWhether to keep entity descriptors that contain no roles; default value: true.List of roles that are NOT removed by this filter. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfilter(XMLObject metadata, MetadataFilterContext context) Filters the given metadata, perhaps to remove elements that are not wanted.protected voidfilterEntitiesDescriptor(EntitiesDescriptor descriptor) FiltersEntitiesDescriptor.protected voidfilterEntityDescriptor(EntityDescriptor descriptor) Filters entity descriptor roles.booleanGet whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors.booleanGet whether to remove an entity descriptor if it does not contain any roles after filtering.Get the unmodifiable list of roles that are NOT removed by this filter.protected QNamegetRoleName(RoleDescriptor role) Gets the effective name for the role.voidsetRemoveEmptyEntitiesDescriptors(boolean remove) Set whether to remove an entities descriptor if it does not contain any entity descriptor or entities descriptors.voidsetRemoveRolelessEntityDescriptors(boolean remove) Set whether to remove an entity descriptor if it does not contain any roles after filtering.Methods inherited from class org.opensaml.saml.metadata.resolver.filter.AbstractMetadataFilter
getType, setTypeMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, doDestroy, doInitialize, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, initialize, isDestroyed, isInitialized
-
Field Details
-
log
@Nonnull private final org.slf4j.Logger logClass logger. -
retainedRoles
List of roles that are NOT removed by this filter. -
removeRolelessEntityDescriptors
private boolean removeRolelessEntityDescriptorsWhether to keep entity descriptors that contain no roles; default value: true. -
removeEmptyEntitiesDescriptors
private boolean removeEmptyEntitiesDescriptorsWhether to keep entities descriptors that contain no entity descriptors; default value: true. -
extRoleDescriptor
QName of extension role element.
-
-
Constructor Details
-
EntityRoleFilter
Constructor.- Parameters:
keptRoles- list of roles NOT removed by this filter
-
-
Method Details
-
getRetainedRoles
Get 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()Get 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) Set 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()Get 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) Set 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
-
filter
@Nullable public XMLObject filter(@Nullable XMLObject metadata, @Nonnull MetadataFilterContext context) throws FilterException Filters the given metadata, perhaps to remove elements that are not wanted.- Parameters:
metadata- the metadata to be filtered.context- the metadata filter context- Returns:
- the filtered XMLObject, which may or may not be the same as the XMLObject instance passed in to the method. Maybe be null, for example if the top-level element was removed by the filter.
- Throws:
FilterException- thrown if an error occurs during the filtering process
-
filterEntitiesDescriptor
protected void filterEntitiesDescriptor(@Nonnull EntitiesDescriptor descriptor) throws FilterException FiltersEntitiesDescriptor.- Parameters:
descriptor- entities descriptor to filter- Throws:
FilterException- thrown if an effective role name can not be determined
-
filterEntityDescriptor
Filters entity descriptor roles.- Parameters:
descriptor- entity descriptor to filter- Throws:
FilterException- thrown if an effective role name can not be determined
-
getRoleName
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
-