Package com.nimbusds.jose.jwk.source
Class CachingJWKSetSource<C extends SecurityContext>
java.lang.Object
com.nimbusds.jose.jwk.source.JWKSetSourceWrapper<C>
com.nimbusds.jose.jwk.source.CachingJWKSetSource<C>
- All Implemented Interfaces:
JWKSetSource<C>
,Closeable
,AutoCloseable
- Direct Known Subclasses:
RefreshAheadCachingJWKSetSource
@ThreadSafe
public class CachingJWKSetSource<C extends SecurityContext>
extends JWKSetSourceWrapper<C>
Caching JWKSetSource. Blocks during cache updates.
- Version:
- 2022-11-08
- Author:
- Thomas Rørvik Skjølberg, Vladimir Dzhuvinov
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
JWK set cache refresh completed event.static class
JWK set cache refresh initiated event.static class
JWK set cache refresh timed out event.static class
Unable to refresh the JWK set cache event.static class
Waiting for a JWK set cache refresh to complete on another thread event. -
Constructor Summary
ConstructorsConstructorDescriptionCachingJWKSetSource
(JWKSetSource<C> source, long timeToLive, long cacheRefreshTimeout, EventListener<CachingJWKSetSource<C>, C> eventListener) Creates a new caching JWK set source. -
Method Summary
Modifier and TypeMethodDescriptionlong
Returns the cache refresh timeout.getJWKSet
(JWKSetCacheRefreshEvaluator refreshEvaluator, long currentTime, C context) Gets the JWK set.long
Returns the time to live of the cached JWK set.Methods inherited from class com.nimbusds.jose.jwk.source.JWKSetSourceWrapper
close, getSource
-
Constructor Details
-
CachingJWKSetSource
public CachingJWKSetSource(JWKSetSource<C> source, long timeToLive, long cacheRefreshTimeout, EventListener<CachingJWKSetSource<C>, C> eventListener) Creates a new caching JWK set source.- Parameters:
source
- The JWK set source to decorate. Must not benull
.timeToLive
- The time to live of the cached JWK set, in milliseconds.cacheRefreshTimeout
- The cache refresh timeout, in milliseconds.eventListener
- The event listener,null
if not specified.
-
-
Method Details
-
getJWKSet
public JWKSet getJWKSet(JWKSetCacheRefreshEvaluator refreshEvaluator, long currentTime, C context) throws KeySourceException Description copied from interface:JWKSetSource
Gets the JWK set.- Parameters:
refreshEvaluator
- Controls whether refresh of the JWK set cache (if utilised by the source) is required.currentTime
- The current time, in milliseconds since the Unix epoch.context
- Optional context,null
if not required.- Returns:
- The JWK set.
- Throws:
KeySourceException
- If JWK set retrieval failed.
-
getCacheRefreshTimeout
Returns the cache refresh timeout.- Returns:
- The cache refresh timeout, in milliseconds.
-
getTimeToLive
public long getTimeToLive()Returns the time to live of the cached JWK set.- Returns:
- The time to live, in milliseconds.
-