Class ChainingProviderMetadataResolver
- java.lang.Object
-
- net.shibboleth.utilities.java.support.component.AbstractInitializableComponent
-
- net.shibboleth.utilities.java.support.component.AbstractIdentifiedInitializableComponent
-
- net.shibboleth.utilities.java.support.component.AbstractIdentifiableInitializableComponent
-
- net.shibboleth.oidc.metadata.impl.ChainingProviderMetadataResolver
-
- All Implemented Interfaces:
ProviderMetadataResolver,RefreshableProviderMetadataResolver,Component,DestructableComponent,IdentifiableComponent,IdentifiedComponent,InitializableComponent,Resolver<com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata,CriteriaSet>
public class ChainingProviderMetadataResolver extends AbstractIdentifiableInitializableComponent implements RefreshableProviderMetadataResolver
A provider metadata provider that uses registered resolvers, in turn, to answer queries. The Iterable of provider metadata returned is the first non-null and non-empty Iterable found while iterating over the registered resolvers in resolver list order.
-
-
Field Summary
Fields Modifier and Type Field Description private org.slf4j.LoggerlogClass logger.private List<ProviderMetadataResolver>resolversRegistered resolvers.
-
Constructor Summary
Constructors Constructor Description ChainingProviderMetadataResolver()Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intcountClients(ProviderMetadataResolver resolver)Counts the clients found from the given resolver.protected voiddoDestroy()protected voiddoInitialize()InstantgetLastRefresh()Gets the time the last refresh cycle occurred.InstantgetLastUpdate()Get the time that the currently available metadata was last updated.List<ProviderMetadataResolver>getResolvers()Get an immutable the list of currently registered resolvers.voidrefresh()Refresh the data exposed by the resolver.Iterable<com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata>resolve(CriteriaSet criteria)com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadataresolveSingle(CriteriaSet criteria)voidsetResolvers(List<? extends ProviderMetadataResolver> newResolvers)Set the registered provider metadata resolvers.-
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
-
-
-
-
Field Detail
-
log
@Nonnull private final org.slf4j.Logger log
Class logger.
-
resolvers
@Nonnull @NonnullElements private List<ProviderMetadataResolver> resolvers
Registered resolvers.
-
-
Method Detail
-
getResolvers
@Nonnull @NonnullElements @Unmodifiable @NotLive public List<ProviderMetadataResolver> getResolvers()
Get an immutable the list of currently registered resolvers.- Returns:
- list of currently registered resolvers
-
setResolvers
public void setResolvers(@Nullable @NonnullElements List<? extends ProviderMetadataResolver> newResolvers) throws ResolverException
Set the registered provider metadata resolvers.- Parameters:
newResolvers- the provider metadata resolvers to use- Throws:
ResolverException- thrown if there is a problem adding the provider metadata resolvers
-
resolveSingle
@Nullable public com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata resolveSingle(@Nullable CriteriaSet criteria) throws ResolverException- Specified by:
resolveSinglein interfaceResolver<com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata,CriteriaSet>- Throws:
ResolverException
-
resolve
@Nonnull public Iterable<com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata> resolve(@Nullable CriteriaSet criteria) throws ResolverException
- Specified by:
resolvein interfaceResolver<com.nimbusds.openid.connect.sdk.op.OIDCProviderMetadata,CriteriaSet>- Throws:
ResolverException
-
refresh
public void refresh() throws ResolverExceptionRefresh the data exposed by the resolver.An implementation of this method should typically be either
synchronizedor make use other locking mechanisms to protect against concurrent access.- Specified by:
refreshin interfaceRefreshableProviderMetadataResolver- Throws:
ResolverException- if the refresh operation was unsuccessful
-
getLastUpdate
@Nullable public Instant getLastUpdate()
Get the time that the currently available metadata was last updated. Note, this may be different than the time retrieved byRefreshableProviderMetadataResolver.getLastRefresh()if the metadata was known not to have changed during the last refresh cycle.- Specified by:
getLastUpdatein interfaceRefreshableProviderMetadataResolver- Returns:
- time when the currently metadata was last updated,
nullif it has never successfully been read
-
getLastRefresh
@Nullable public Instant getLastRefresh()
Gets the time the last refresh cycle occurred.- Specified by:
getLastRefreshin interfaceRefreshableProviderMetadataResolver- Returns:
- time the last refresh cycle occurred
-
doInitialize
protected void doInitialize() throws ComponentInitializationException- Overrides:
doInitializein classAbstractIdentifiedInitializableComponent- Throws:
ComponentInitializationException
-
doDestroy
protected void doDestroy()
- Overrides:
doDestroyin classAbstractInitializableComponent
-
countClients
protected int countClients(ProviderMetadataResolver resolver)
Counts the clients found from the given resolver.- Parameters:
resolver- The resolver whose clients are counted.- Returns:
- The amount of resolvable clients.
-
-