Class FilesystemMetadataResolver
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
org.opensaml.saml.metadata.resolver.impl.AbstractReloadingMetadataResolver
org.opensaml.saml.metadata.resolver.impl.FilesystemMetadataResolver
- All Implemented Interfaces:
Iterable<EntityDescriptor>
,Component
,DestructableComponent
,IdentifiableComponent
,IdentifiedComponent
,InitializableComponent
,Resolver<EntityDescriptor,
,CriteriaSet> IterableMetadataSource
,BatchMetadataResolver
,MetadataResolver
,RefreshableMetadataResolver
A metadata provider that pulls metadata from a file on the local filesystem.
This metadata provider periodically checks to see if the read metadata file has changed. The delay between each
refresh interval is calculated as follows. If no validUntil or cacheDuration is present then the
AbstractReloadingMetadataResolver.getMaxRefreshDelay()
value is used. Otherwise, the earliest refresh interval of the metadata file is checked
by looking for the earliest of all the validUntil attributes and cacheDuration attributes. If that refresh interval
is larger than the max refresh delay then AbstractReloadingMetadataResolver.getMaxRefreshDelay()
is used. If that number is smaller than the
min refresh delay then AbstractReloadingMetadataResolver.getMinRefreshDelay()
is used. Otherwise the calculated refresh delay multiplied by
AbstractReloadingMetadataResolver.getRefreshDelayFactor()
is used. By using this factor, the provider will attempt to be refresh before the
cache actually expires, allowing a some room for error and recovery. Assuming the factor is not exceedingly close to
1.0 and a min refresh delay that is not overly large, this refresh will likely occur a few times before the cache
expires.-
Nested Class Summary
Nested classes/interfaces inherited from class org.opensaml.saml.metadata.resolver.impl.AbstractBatchMetadataResolver
AbstractBatchMetadataResolver.BatchEntityBackingStore
Nested classes/interfaces inherited from class org.opensaml.saml.metadata.resolver.impl.AbstractMetadataResolver
AbstractMetadataResolver.EntityBackingStore
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final org.slf4j.Logger
Class logger.private File
The metadata file. -
Constructor Summary
ConstructorsConstructorDescriptionFilesystemMetadataResolver
(File metadata) Constructor.FilesystemMetadataResolver
(Timer backgroundTaskTimer, File metadata) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
protected byte[]
Fetches metadata from a source.protected String
Gets an identifier which may be used to distinguish this metadata in logging statements.protected void
setMetadataFile
(File file) Sets the file from which metadata is read.protected void
validateMetadataFile
(File file) Validate the basic properties of the specified metadata file, for example that it exists; that it is a file; and that it is readable.Methods inherited from class org.opensaml.saml.metadata.resolver.impl.AbstractReloadingMetadataResolver
computeNextRefreshDelay, getExpirationTime, getExpirationWarningThreshold, getLastFailureCause, getLastRefresh, getLastSuccessfulRefresh, getLastUpdate, getMaxRefreshDelay, getMinRefreshDelay, getNextRefresh, getRefreshDelayFactor, initMetadataResolver, inputstreamToByteArray, postProcessMetadata, processCachedMetadata, processNewMetadata, processNonExpiredMetadata, processPreExpiredMetadata, refresh, setCacheSourceMetadata, setExpirationWarningThreshold, setMaxRefreshDelay, setMinRefreshDelay, setRefreshDelayFactor, unmarshallMetadata, wasLastRefreshSuccess
Methods inherited from class org.opensaml.saml.metadata.resolver.impl.AbstractBatchMetadataResolver
createNewBackingStore, getBackingStore, getCachedFilteredMetadata, getCachedOriginalMetadata, getIndexes, getRootValidUntil, indexEntityDescriptor, isCacheSourceMetadata, isResolveViaPredicatesOnly, isRootValid, iterator, lookupByIndexes, preProcessNewMetadata, resolve, setIndexes, setResolveViaPredicatesOnly
Methods inherited from class org.opensaml.saml.metadata.resolver.impl.AbstractMetadataResolver
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
resolve, resolveSingle
-
Field Details
-
log
private final org.slf4j.Logger logClass logger. -
metadataFile
The metadata file.
-
-
Constructor Details
-
FilesystemMetadataResolver
Constructor.- Parameters:
metadata
- the metadata file- Throws:
ResolverException
- this exception is no longer thrown
-
FilesystemMetadataResolver
public FilesystemMetadataResolver(@Nullable Timer backgroundTaskTimer, @Nonnull File metadata) throws ResolverException Constructor.- Parameters:
metadata
- the metadata filebackgroundTaskTimer
- timer used to refresh metadata in the background- Throws:
ResolverException
- this exception is no longer thrown
-
-
Method Details
-
setMetadataFile
Sets the file from which metadata is read.- Parameters:
file
- path to the metadata file- Throws:
ResolverException
- this exception is no longer thrown
-
doDestroy
protected void doDestroy()- Overrides:
doDestroy
in classAbstractReloadingMetadataResolver
-
getMetadataIdentifier
Gets an identifier which may be used to distinguish this metadata in logging statements.- Specified by:
getMetadataIdentifier
in classAbstractReloadingMetadataResolver
- Returns:
- identifier which may be used to distinguish this metadata in logging statements
-
fetchMetadata
Fetches metadata from a source.- Specified by:
fetchMetadata
in classAbstractReloadingMetadataResolver
- Returns:
- the fetched metadata, or null if the metadata is known not to have changed since the last retrieval
- Throws:
ResolverException
- thrown if there is a problem fetching the metadata
-
validateMetadataFile
Validate the basic properties of the specified metadata file, for example that it exists; that it is a file; and that it is readable.- Parameters:
file
- the file to evaluate- Throws:
ResolverException
- if file does not pass basic properties required of a metadata file
-