Class AbstractBatchMetadataResolver
java.lang.Object
net.shibboleth.shared.component.AbstractInitializableComponent
net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent
net.shibboleth.shared.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 classSpecialized 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 booleanFlag indicating whether to cache the original source metadata document.private Set<MetadataIndex>The set of indexes configured.private final org.slf4j.LoggerClass logger.private booleanFlag 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.protected Iterable<EntityDescriptor>doResolve(CriteriaSet criteria) Subclasses should override this method.Get the EntityDescriptor backing store currently in use by the metadata resolver, raising aConstraintViolationExceptionif null.protected XMLObjectConvenience method for getting the current effective cached filtered metadata.protected XMLObjectConvenience 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 voidindexEntityDescriptor(EntityDescriptor entityDescriptor, AbstractMetadataResolver.EntityBackingStore backingStore) Index the specified entity descriptor, updating the specified entity backing store instance as necessary.protected voidSubclasses should override this method to perform any initialization logic necessary.protected booleanGet whether to cache the original source metadata document.booleanGet 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.protected voidsetCacheSourceMetadata(boolean flag) Set whether to cache the original source metadata document.voidsetIndexes(Set<MetadataIndex> newIndexes) Set the configured indexes.voidsetResolveViaPredicatesOnly(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, getActivationCondition, getBackingStore, getCriterionPredicateRegistry, getLogPrefix, getMetadataFilter, getMetricsBaseName, getParserPool, getType, getUnmarshallerFactory, isFailFastInitialization, isRequireValidMetadata, isSatisfyAnyPredicates, isUseDefaultPredicateRegistry, isValid, lookupEntityID, lookupIndexedEntityID, newFilterContext, predicateFilterCandidates, preProcessEntitiesDescriptor, preProcessEntityDescriptor, releaseMetadataDOM, removeByEntityID, resolve, resolveSingle, setActivationCondition, setBackingStore, setCriterionPredicateRegistry, setFailFastInitialization, setMetadataFilter, setMetricsBaseName, setParserPool, setRequireValidMetadata, setSatisfyAnyPredicates, setType, setUseDefaultPredicateRegistry, unmarshallMetadataMethods inherited from class net.shibboleth.shared.component.AbstractIdentifiableInitializableComponent
setIdMethods inherited from class net.shibboleth.shared.component.AbstractIdentifiedInitializableComponent
ensureId, getId, ifDestroyedThrowDestroyedComponentException, ifInitializedThrowUnmodifiabledComponentException, ifNotInitializedThrowUninitializedComponentExceptionMethods inherited from class net.shibboleth.shared.component.AbstractInitializableComponent
checkComponentActive, checkSetterPreconditions, destroy, initialize, isDestroyed, isInitializedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.shibboleth.shared.component.IdentifiedComponent
getIdMethods inherited from interface java.lang.Iterable
forEach, spliteratorMethods inherited from interface org.opensaml.saml.metadata.resolver.MetadataResolver
getMetadataFilter, getType, isRequireValidMetadata, setMetadataFilter, setRequireValidMetadataMethods inherited from interface net.shibboleth.shared.resolver.Resolver
resolve, resolveSingle
-
Field Details
-
log
@Nonnull 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:
iteratorin 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:
getRootValidUntilin 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:
isRootValidin interfaceBatchMetadataResolver- Returns:
- true if root element is valid, false if not valid, null if indeterminate
-
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:
indexEntityDescriptorin 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:
createNewBackingStorein classAbstractMetadataResolver- Returns:
- the new backing store instance
-
ensureBackingStore
Get the EntityDescriptor backing store currently in use by the metadata resolver, raising aConstraintViolationExceptionif null.- Overrides:
ensureBackingStorein 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:
initMetadataResolverin 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
-