Class MDQMetadataProvider
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
se.swedenconnect.opensaml.saml2.metadata.provider.AbstractMetadataProvider
se.swedenconnect.opensaml.saml2.metadata.provider.MDQMetadataProvider
- All Implemented Interfaces:
net.shibboleth.shared.component.Component
,net.shibboleth.shared.component.DestructableComponent
,net.shibboleth.shared.component.InitializableComponent
,MetadataProvider
A
MetadataProvider
that supports the MDQ
specification.
Note that getMetadata()
, AbstractMetadataProvider.getServiceProviders()
and AbstractMetadataProvider.getIdentityProviders()
will only return
those entities that have been fetched from the server using AbstractMetadataProvider.getEntityDescriptor(String)
.
- Author:
- Martin Lindström (martin@idsec.se)
-
Nested Class Summary
Nested classes/interfaces inherited from class se.swedenconnect.opensaml.saml2.metadata.provider.AbstractMetadataProvider
AbstractMetadataProvider.EntityDescriptorIterator
-
Constructor Summary
ConstructorDescriptionMDQMetadataProvider
(String metadataBaseUrl, org.apache.hc.client5.http.classic.HttpClient httpClient, String cacheBaseDir) Constructor setting up aMetadataProvider
that uses the MDQ protocol to download metadata for requested entities. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
createMetadataResolver
(boolean requireValidMetadata, boolean failFastInitialization, org.opensaml.saml.metadata.resolver.filter.MetadataFilter filter) Creates the specificMetadataResolver
instance for the provider implementation.protected void
Destroys the metadata resolver.getID()
Returns the identifier for the provider.org.opensaml.core.xml.XMLObject
Gets allEntityDescriptor
objects available in the cache and adds them to aEntitiesDescriptor
object.org.opensaml.saml.metadata.resolver.MetadataResolver
Returns the underlying OpenSAML metadata resolver.protected void
Initializes the metadata resolver.protected void
setMetadata
(org.opensaml.core.xml.XMLObject metadata) Assigns the metadata that was downloaded.Methods inherited from class se.swedenconnect.opensaml.saml2.metadata.provider.AbstractMetadataProvider
createFilter, doDestroy, doInitialize, getEntityDescriptor, getEntityDescriptor, getIdentityProviders, getLastUpdate, getMetadataDOM, getServiceProviders, getSignatureVerificationCertificates, iterator, iterator, refresh, setExclusionPredicates, setFailFastInitialization, setInclusionPredicates, setKeepOnlySpAndIdps, setPerformSchemaValidation, setRequireValidMetadata, setSignatureVerificationCertificate, setSignatureVerificationCertificates
Methods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentException, 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.shared.component.DestructableComponent
destroy, isDestroyed
Methods inherited from interface net.shibboleth.shared.component.InitializableComponent
initialize, isInitialized
-
Constructor Details
-
MDQMetadataProvider
public MDQMetadataProvider(@Nonnull String metadataBaseUrl, @Nullable org.apache.hc.client5.http.classic.HttpClient httpClient, @Nullable String cacheBaseDir) throws net.shibboleth.shared.resolver.ResolverException Constructor setting up aMetadataProvider
that uses the MDQ protocol to download metadata for requested entities.- Parameters:
metadataBaseUrl
- the base metadata URL (must not end with a /)httpClient
- the HTTP client instance to use, if null,HTTPMetadataProvider.createDefaultHttpClient()
is used to create a default clientcacheBaseDir
- the base directory where caches will be stored, if null, the caches are kept in memory- Throws:
net.shibboleth.shared.resolver.ResolverException
- for failures setting up the underlyingMetadataResolver
-
-
Method Details
-
getID
Returns the identifier for the provider.- Returns:
- the identifier
-
getMetadata
public org.opensaml.core.xml.XMLObject getMetadata()Gets allEntityDescriptor
objects available in the cache and adds them to aEntitiesDescriptor
object.Note: The
MDQMetadataProvider
version of this method does not return all metadata entries available at the source. It only returns those that have been downloaded by the provider and are present in the cache.- Specified by:
getMetadata
in interfaceMetadataProvider
- Overrides:
getMetadata
in classAbstractMetadataProvider
- Returns:
- an XML element
-
setMetadata
protected void setMetadata(org.opensaml.core.xml.XMLObject metadata) Assigns the metadata that was downloaded.- Overrides:
setMetadata
in classAbstractMetadataProvider
- Parameters:
metadata
- metadata object
-
getMetadataResolver
public org.opensaml.saml.metadata.resolver.MetadataResolver getMetadataResolver()Returns the underlying OpenSAML metadata resolver.- Returns:
- OpenSAML metadata resolver
-
createMetadataResolver
protected void createMetadataResolver(boolean requireValidMetadata, boolean failFastInitialization, org.opensaml.saml.metadata.resolver.filter.MetadataFilter filter) throws net.shibboleth.shared.resolver.ResolverException Creates the specificMetadataResolver
instance for the provider implementation.The
filter
parameter is aMetadataFilter
that 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:
createMetadataResolver
in 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:
net.shibboleth.shared.resolver.ResolverException
- for errors creating the resolver
-
initializeMetadataResolver
protected void initializeMetadataResolver() throws net.shibboleth.shared.component.ComponentInitializationExceptionInitializes the metadata resolver.- Specified by:
initializeMetadataResolver
in classAbstractMetadataProvider
- Throws:
net.shibboleth.shared.component.ComponentInitializationException
- for initialization errors
-
destroyMetadataResolver
protected void destroyMetadataResolver()Destroys the metadata resolver.- Specified by:
destroyMetadataResolver
in classAbstractMetadataProvider
-