Class AbstractBatchMetadataResolver
java.lang.Object
net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent
net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent
org.opensaml.saml.metadata.resolver.impl.AbstractMetadataResolver
org.opensaml.saml.metadata.resolver.impl.AbstractBatchMetadataResolver
- All Implemented Interfaces:
Iterable<EntityDescriptor>
,Component
,DestructableComponent
,IdentifiableComponent
,IdentifiedComponent
,InitializableComponent
,Resolver<EntityDescriptor,
,CriteriaSet> IterableMetadataSource
,BatchMetadataResolver
,MetadataResolver
- Direct Known Subclasses:
AbstractReloadingMetadataResolver
,DOMMetadataResolver
public abstract class AbstractBatchMetadataResolver
extends AbstractMetadataResolver
implements BatchMetadataResolver, IterableMetadataSource
Abstract subclass for metadata resolvers that process and resolve metadata at a given point
in time from a single metadata source document.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected class
Specialized entity backing store implementation for batch metadata resolvers.Nested classes/interfaces inherited from class org.opensaml.saml.metadata.resolver.impl.AbstractMetadataResolver
AbstractMetadataResolver.EntityBackingStore
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate boolean
Flag indicating whether to cache the original source metadata document.private Set<MetadataIndex>
The set of indexes configured.private final org.slf4j.Logger
Class logger.private boolean
Flag indicating whether resolution may be performed solely by applying predicates to the entire metadata collection. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionCreate a new backing store instance for EntityDescriptor data.Get the EntityDescriptor backing store currently in use by the metadata resolver.protected XMLObject
Convenience method for getting the current effective cached filtered metadata.protected XMLObject
Convenience method for getting the current effective cached original metadata.Get the configured indexes.Get the validUntil of of the metadata batch root element, if present.protected void
indexEntityDescriptor
(EntityDescriptor entityDescriptor, AbstractMetadataResolver.EntityBackingStore backingStore) Index the specified entity descriptor, updating the specified entity backing store instance as necessary.protected void
Subclasses should override this method to perform any initialization logic necessary.protected boolean
Get whether to cache the original source metadata document.boolean
Get the flag indicating whether resolution may be performed solely by applying predicates to the entire metadata collection.Get the validity state of the metadata batch root element, as determined in an implementation-specific manner.iterator()
protected Optional<Set<EntityDescriptor>>
lookupByIndexes
(CriteriaSet criteria) Resolve the set up descriptors based on the indexes currently held.Process the specified new metadata document, including metadata filtering and return its data in a new entity backing store instance.resolve
(CriteriaSet criteria) protected void
setCacheSourceMetadata
(boolean flag) Set whether to cache the original source metadata document.void
setIndexes
(Set<MetadataIndex> newIndexes) Set the configured indexes.void
setResolveViaPredicatesOnly
(boolean flag) Set the flag indicating whether resolution may be performed solely by applying predicates to the entire metadata collection.Methods inherited from class org.opensaml.saml.metadata.resolver.impl.AbstractMetadataResolver
doDestroy, doInitialize, filterMetadata, getCriterionPredicateRegistry, getLogPrefix, getMetadataFilter, getParserPool, getUnmarshallerFactory, isFailFastInitialization, isRequireValidMetadata, isSatisfyAnyPredicates, isUseDefaultPredicateRegistry, isValid, lookupEntityID, lookupIndexedEntityID, newFilterContext, predicateFilterCandidates, preProcessEntitiesDescriptor, preProcessEntityDescriptor, releaseMetadataDOM, removeByEntityID, resolveSingle, setBackingStore, setCriterionPredicateRegistry, setFailFastInitialization, setMetadataFilter, setParserPool, setRequireValidMetadata, setSatisfyAnyPredicates, setUseDefaultPredicateRegistry, unmarshallMetadata
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent
setId
Methods inherited from class net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent
getId
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.IdentifiedComponent
getId
Methods inherited from interface java.lang.Iterable
forEach, spliterator
Methods inherited from interface org.opensaml.saml.metadata.resolver.MetadataResolver
getMetadataFilter, isRequireValidMetadata, setMetadataFilter, setRequireValidMetadata
Methods inherited from interface net.shibboleth.utilities.java.support.resolver.Resolver
resolveSingle
-
Field Details
-
log
private final org.slf4j.Logger logClass logger. -
cacheSourceMetadata
private boolean cacheSourceMetadataFlag indicating whether to cache the original source metadata document. -
indexes
The set of indexes configured. -
resolveViaPredicatesOnly
private boolean resolveViaPredicatesOnlyFlag indicating whether resolution may be performed solely by applying predicates to the entire metadata collection. Defaults to false.
-
-
Constructor Details
-
AbstractBatchMetadataResolver
public AbstractBatchMetadataResolver()Constructor.
-
-
Method Details
-
iterator
- Specified by:
iterator
in interfaceIterable<EntityDescriptor>
-
isCacheSourceMetadata
protected boolean isCacheSourceMetadata()Get whether to cache the original source metadata document.- Returns:
- true if source should be cached, false otherwise
-
setCacheSourceMetadata
protected void setCacheSourceMetadata(boolean flag) Set whether to cache the original source metadata document.- Parameters:
flag
- true if source should be cached, false otherwise
-
getIndexes
Get the configured indexes.- Returns:
- the set of configured indexes
-
setIndexes
Set the configured indexes.- Parameters:
newIndexes
- the new indexes to set
-
isResolveViaPredicatesOnly
public boolean isResolveViaPredicatesOnly()Get the flag indicating whether resolution may be performed solely by applying predicates to the entire metadata collection.- Returns:
- true if resolution may be attempted solely via predicates, false if not
-
setResolveViaPredicatesOnly
public void setResolveViaPredicatesOnly(boolean flag) Set the flag indicating whether resolution may be performed solely by applying predicates to the entire metadata collection.- Parameters:
flag
- true if resolution may be attempted solely via predicates, false if not
-
getRootValidUntil
Get the validUntil of of the metadata batch root element, if present.- Specified by:
getRootValidUntil
in interfaceBatchMetadataResolver
- Returns:
- the validUntil date/time of the root element, or null if not available
-
isRootValid
Get the validity state of the metadata batch root element, as determined in an implementation-specific manner.- Specified by:
isRootValid
in interfaceBatchMetadataResolver
- Returns:
- true if root element is valid, false if not valid, null if indeterminate
-
resolve
- Specified by:
resolve
in interfaceResolver<EntityDescriptor,
CriteriaSet> - Throws:
ResolverException
-
lookupByIndexes
@Nonnull @NonnullElements protected Optional<Set<EntityDescriptor>> lookupByIndexes(@Nonnull CriteriaSet criteria) Resolve the set up descriptors based on the indexes currently held.- Parameters:
criteria
- the criteria set to process- Returns:
- an
Optional
instance containing the descriptors resolved via indexes, and based on the input criteria set. If the Optional instance indicates 'absent', there were either no indexes configured, or no criteria were applicable/understood by any indexes. If 'present' is indicated, then there were applicable/understood criteria, and the wrapped set contains the indexed data, which may be empty.
-
indexEntityDescriptor
protected void indexEntityDescriptor(@Nonnull EntityDescriptor entityDescriptor, @Nonnull AbstractMetadataResolver.EntityBackingStore backingStore) Index the specified entity descriptor, updating the specified entity backing store instance as necessary.- Overrides:
indexEntityDescriptor
in classAbstractMetadataResolver
- Parameters:
entityDescriptor
- the target entity descriptor to processbackingStore
- the backing store instance to update
-
createNewBackingStore
Create a new backing store instance for EntityDescriptor data. Subclasses may override to return a more specialized subclass type. Note this method does not make the returned backing store the effective one in use. The caller is responsible for callingAbstractMetadataResolver.setBackingStore(EntityBackingStore)
to make it the effective instance in use.- Overrides:
createNewBackingStore
in classAbstractMetadataResolver
- Returns:
- the new backing store instance
-
getBackingStore
Get the EntityDescriptor backing store currently in use by the metadata resolver.- Overrides:
getBackingStore
in classAbstractMetadataResolver
- Returns:
- the current effective entity backing store
-
initMetadataResolver
Subclasses should override this method to perform any initialization logic necessary. Default implementation is a no-op.- Overrides:
initMetadataResolver
in classAbstractMetadataResolver
- Throws:
ComponentInitializationException
- thrown if there is a problem initializing the provider
-
getCachedOriginalMetadata
Convenience method for getting the current effective cached original metadata.Note: may or may not be the same as that obtained from
getCachedFilteredMetadata()
, depending on what metadata filtering produced from the original metadata document.- Returns:
- the current effective cached metadata document
-
getCachedFilteredMetadata
Convenience method for getting the current effective cached filtered metadata.Note: may or may not be the same as that obtained from
getCachedOriginalMetadata()
, depending on what metadata filtering produced from the original metadata document.- Returns:
- the current effective cached metadata document
-
preProcessNewMetadata
@Nonnull protected AbstractBatchMetadataResolver.BatchEntityBackingStore preProcessNewMetadata(@Nonnull XMLObject root) throws FilterException Process the specified new metadata document, including metadata filtering and return its data in a new entity backing store instance.- Parameters:
root
- the root of the new metadata document being processed- Returns:
- the new backing store instance
- Throws:
FilterException
- if there is a problem filtering the metadata
-