Class CompositeMetadataProvider
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- se.litsec.opensaml.saml2.metadata.provider.AbstractMetadataProvider
-
- se.litsec.opensaml.saml2.metadata.provider.CompositeMetadataProvider
-
- All Implemented Interfaces:
Component,DestructableComponent,InitializableComponent,MetadataProvider
public class CompositeMetadataProvider extends AbstractMetadataProvider
A metadata provider that collects its metadata from multiple sources (providers).It is recommended that all providers installed have the
failFastInitializationproperty set tofalse. Otherwise a failing provider will shut down the entire compostite provider.- Author:
- Martin Lindström (martin.lindstrom@litsec.se)
- See Also:
CompositeMetadataResolver
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class se.litsec.opensaml.saml2.metadata.provider.AbstractMetadataProvider
AbstractMetadataProvider.EntityDescriptorIterator
-
-
Constructor Summary
Constructors Constructor Description CompositeMetadataProvider(String id, List<MetadataProvider> metadataProviders)Constructs a composite metadata provider by assigning it a list of provider instances that it shall read its metadata from.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected MetadataFiltercreateFilter()Returnsnullsince theCompositeMetadataResolverdoesn't perform any filtering.protected voidcreateMetadataResolver(boolean requireValidMetadata, boolean failFastInitialization, MetadataFilter filter)Creates the specificMetadataResolverinstance for the provider implementation.protected voiddestroyMetadataResolver()Destroys the metadata resolver.StringgetID()Returns the identifier for the provider.InstantgetLastUpdate()Returns the time the currently available metadata was last updated.XMLObjectgetMetadata()Collects all metadata from all underlying providers and creates anEntitiesDescriptorelement.MetadataResolvergetMetadataResolver()Returns the underlying OpenSAML metadata resolver.protected voidinitializeMetadataResolver()Initializes the metadata resolver.voidsetExclusionPredicates(List<Predicate<EntityDescriptor>> exclusionPredicates)It is not possible to set configuration for metadata for aCompositeMetadataResolver.voidsetFailFastInitialization(boolean failFast)It is not possible to set configuration for metadata for aCompositeMetadataResolver.voidsetInclusionPredicates(List<Predicate<EntityDescriptor>> inclusionPredicates)It is not possible to set configuration for metadata for aCompositeMetadataResolver.voidsetPerformSchemaValidation(boolean performSchemaValidation)It is not possible to set configuration for metadata for aCompositeMetadataResolver.voidsetRequireValidMetadata(boolean requireValidMetadata)It is not possible to set configuration for metadata for aCompositeMetadataResolver.voidsetSignatureVerificationCertificate(X509Certificate signatureVerificationCertificate)It is not possible to set configuration for metadata for aCompositeMetadataResolver.-
Methods inherited from class se.litsec.opensaml.saml2.metadata.provider.AbstractMetadataProvider
doDestroy, doInitialize, getEntityDescriptor, getIdentityProviders, getIDPSSODescriptor, getMetadataDOM, getServiceProviders, getSignatureVerificationCertificates, getSPSSODescriptor, iterator, iterator, refresh, setSignatureVerificationCertificates
-
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
destroy, initialize, isDestroyed, isInitialized
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.shibboleth.utilities.java.support.component.DestructableComponent
destroy, isDestroyed
-
Methods inherited from interface net.shibboleth.utilities.java.support.component.InitializableComponent
initialize, isInitialized
-
-
-
-
Constructor Detail
-
CompositeMetadataProvider
public CompositeMetadataProvider(String id, List<MetadataProvider> metadataProviders)
Constructs a composite metadata provider by assigning it a list of provider instances that it shall read its metadata from.The
idparameter will also by used as theNameattribute for theEntitiesDescriptorthat will be returned bygetMetadata().- Parameters:
id- the identifier for the provider (may not be changed later on)metadataProviders- a list of providers
-
-
Method Detail
-
getID
public String getID()
Returns the identifier for the provider.- Returns:
- the identifier
-
getMetadataResolver
public MetadataResolver getMetadataResolver()
Returns the underlying OpenSAML metadata resolver.- Returns:
- OpenSAML metadata resolver
-
getMetadata
public XMLObject getMetadata()
Collects all metadata from all underlying providers and creates anEntitiesDescriptorelement. Any duplicate entity ID:s will be removed.- Specified by:
getMetadatain interfaceMetadataProvider- Overrides:
getMetadatain classAbstractMetadataProvider- Returns:
- an XML element
-
getLastUpdate
public Instant getLastUpdate()
Returns the time the currently available metadata was last updated.- Specified by:
getLastUpdatein interfaceMetadataProvider- Overrides:
getLastUpdatein classAbstractMetadataProvider- Returns:
- time when the currently metadata was last updated, or null if no metadata has been successfully loaded
-
createMetadataResolver
protected void createMetadataResolver(boolean requireValidMetadata, boolean failFastInitialization, MetadataFilter filter) throws ResolverExceptionCreates the specificMetadataResolverinstance for the provider implementation.The
filterparameter is aMetadataFilterthat must be installed for the resolver. Any other filters that should be installed by the specific instance should be placed last in a filter chain.- Specified by:
createMetadataResolverin classAbstractMetadataProvider- Parameters:
requireValidMetadata- should be passed intoMetadataResolver.setRequireValidMetadata(boolean)failFastInitialization- should be passed intoAbstractMetadataResolver.setFailFastInitialization(boolean)(if applicable)filter- filter that must be installed for the resolver- Throws:
ResolverException- for errors creating the resolver
-
createFilter
protected MetadataFilter createFilter()
Returnsnullsince theCompositeMetadataResolverdoesn't perform any filtering.- Overrides:
createFilterin classAbstractMetadataProvider- Returns:
- a metadata filter
-
initializeMetadataResolver
protected void initializeMetadataResolver() throws ComponentInitializationExceptionInitializes the metadata resolver.- Specified by:
initializeMetadataResolverin classAbstractMetadataProvider- Throws:
ComponentInitializationException- for initialization errors
-
destroyMetadataResolver
protected void destroyMetadataResolver()
Destroys the metadata resolver.- Specified by:
destroyMetadataResolverin classAbstractMetadataProvider
-
setRequireValidMetadata
public void setRequireValidMetadata(boolean requireValidMetadata)
It is not possible to set configuration for metadata for aCompositeMetadataResolver. This should be done on each of the underlying resolvers.- Overrides:
setRequireValidMetadatain classAbstractMetadataProvider- Parameters:
requireValidMetadata- whether the metadata returned by queries must be valid
-
setFailFastInitialization
public void setFailFastInitialization(boolean failFast)
It is not possible to set configuration for metadata for aCompositeMetadataResolver. This should be done on each of the underlying resolvers.- Overrides:
setFailFastInitializationin classAbstractMetadataProvider- Parameters:
failFast- whether problems during initialization should cause the provider to fail
-
setInclusionPredicates
public void setInclusionPredicates(List<Predicate<EntityDescriptor>> inclusionPredicates)
It is not possible to set configuration for metadata for aCompositeMetadataResolver. This should be done on each of the underlying resolvers.- Overrides:
setInclusionPredicatesin classAbstractMetadataProvider- Parameters:
inclusionPredicates- predicates- See Also:
MetadataProviderPredicates
-
setExclusionPredicates
public void setExclusionPredicates(List<Predicate<EntityDescriptor>> exclusionPredicates)
It is not possible to set configuration for metadata for aCompositeMetadataResolver. This should be done on each of the underlying resolvers.- Overrides:
setExclusionPredicatesin classAbstractMetadataProvider- Parameters:
exclusionPredicates- predicates- See Also:
MetadataProviderPredicates
-
setSignatureVerificationCertificate
public void setSignatureVerificationCertificate(X509Certificate signatureVerificationCertificate)
It is not possible to set configuration for metadata for aCompositeMetadataResolver. This should be done on each of the underlying resolvers.- Overrides:
setSignatureVerificationCertificatein classAbstractMetadataProvider- Parameters:
signatureVerificationCertificate- the certificate to assign
-
setPerformSchemaValidation
public void setPerformSchemaValidation(boolean performSchemaValidation)
It is not possible to set configuration for metadata for aCompositeMetadataResolver. This should be done on each of the underlying resolvers.- Overrides:
setPerformSchemaValidationin classAbstractMetadataProvider- Parameters:
performSchemaValidation- whether schema validation should be performed
-
-