Package org.entur.jwt.client
Class DefaultCachedAccessTokenProvider
java.lang.Object
org.entur.jwt.client.BaseAccessTokenProvider
org.entur.jwt.client.AbstractCachedAccessTokenProvider
org.entur.jwt.client.DefaultCachedAccessTokenProvider
- All Implemented Interfaces:
Closeable,AutoCloseable,AccessTokenHealthProvider,AccessTokenProvider
- Direct Known Subclasses:
PreemptiveCachedAccessTokenProvider
Caching AccessTokenProvider. Blocks when the cache is updated.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.entur.jwt.client.AbstractCachedAccessTokenProvider
AbstractCachedAccessTokenProvider.AccessTokenCacheItem -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final ReentrantLockprotected final longprotected final longFields inherited from class org.entur.jwt.client.AbstractCachedAccessTokenProvider
cacheFields inherited from class org.entur.jwt.client.BaseAccessTokenProvider
logger, provider -
Constructor Summary
ConstructorsConstructorDescriptionDefaultCachedAccessTokenProvider(AccessTokenProvider provider, long minimumTimeToLive, long refreshTimeout) Construct new instance.DefaultCachedAccessTokenProvider(AccessTokenProvider provider, long minimumTimeToLiveUnits, TimeUnit minimumTimeToLiveUnit, long refreshTimeoutUnits, TimeUnit refreshTimeoutUnit) Construct new instance. -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()createCacheItem(long time, AccessToken accessToken) protected AccessTokengetAccessToken(long time, boolean forceUpdate) getAccessTokenBlocking(long time, AbstractCachedAccessTokenProvider.AccessTokenCacheItem cache) Get cached token.longlongloadAccessTokenFromProvider(long time) Methods inherited from class org.entur.jwt.client.AbstractCachedAccessTokenProvider
getAccessToken, getCache, getCachedAccessTokenMethods inherited from class org.entur.jwt.client.BaseAccessTokenProvider
getHealth, getProvider, supportsHealth
-
Field Details
-
lock
-
minimumTimeToLive
protected final long minimumTimeToLive -
refreshTimeout
protected final long refreshTimeout
-
-
Constructor Details
-
DefaultCachedAccessTokenProvider
public DefaultCachedAccessTokenProvider(AccessTokenProvider provider, long minimumTimeToLiveUnits, TimeUnit minimumTimeToLiveUnit, long refreshTimeoutUnits, TimeUnit refreshTimeoutUnit) Construct new instance.- Parameters:
provider- Access-token providerminimumTimeToLiveUnits- minimum time to live (left when returned by AbstractCachedAccessTokenProvider.getAccessToken(boolean)).minimumTimeToLiveUnit- minimum time to live unitrefreshTimeoutUnits- cache refresh timeoutrefreshTimeoutUnit- cache refresh timeout unit
-
DefaultCachedAccessTokenProvider
public DefaultCachedAccessTokenProvider(AccessTokenProvider provider, long minimumTimeToLive, long refreshTimeout) Construct new instance.- Parameters:
provider- Access-token providerminimumTimeToLive- minimum time to live left when returned by AbstractCachedAccessTokenProvider.getAccessToken(boolean).refreshTimeout- cache refresh timeout unit
-
-
Method Details
-
getCachedAccessToken
Get cached token.- Returns:
- token, null if cache is not populated
-
getAccessToken
- Throws:
AccessTokenException
-
getAccessTokenBlocking
protected AbstractCachedAccessTokenProvider.AccessTokenCacheItem getAccessTokenBlocking(long time, AbstractCachedAccessTokenProvider.AccessTokenCacheItem cache) throws AccessTokenException - Throws:
AccessTokenException
-
loadAccessTokenFromProvider
protected AbstractCachedAccessTokenProvider.AccessTokenCacheItem loadAccessTokenFromProvider(long time) throws AccessTokenException - Throws:
AccessTokenException
-
createCacheItem
protected AbstractCachedAccessTokenProvider.AccessTokenCacheItem createCacheItem(long time, AccessToken accessToken) -
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classBaseAccessTokenProvider- Throws:
IOException
-
getMinimumTimeToLive
public long getMinimumTimeToLive() -
getRefreshTimeout
public long getRefreshTimeout()
-