JWKSetCacheRefreshEvaluator.java
package com.nimbusds.jose.jwk.source;
import com.nimbusds.jose.jwk.JWKSet;
/**
* Evaluates whether a JWK set cache requires refreshing.
*
* @author Thomas R��rvik Skj��lberg
* @author Vladimir Dzhuvinov
* @version 2022-11-23
*/
public abstract class JWKSetCacheRefreshEvaluator {
private static final ForceRefreshJWKSetCacheEvaluator FORCE_REFRESH = new ForceRefreshJWKSetCacheEvaluator();
private static final NoRefreshJWKSetCacheEvaluator NO_REFRESH = new NoRefreshJWKSetCacheEvaluator();
/**
* Returns a force-refresh evaluator.
*
* @return The force-refresh evaluator.
*/
public static JWKSetCacheRefreshEvaluator forceRefresh() {
return FORCE_REFRESH;
}
/**
* Returns a no-refresh evaluator.
*
* @return The no-refresh evaluator.
*/
public static JWKSetCacheRefreshEvaluator noRefresh() {
return NO_REFRESH;
}
/**
* Returns a reference comparison evaluator for the specified JWK set.
*
* @param jwtSet The JWK set.
*
* @return The reference comparison evaluator.
*/
public static JWKSetCacheRefreshEvaluator referenceComparison(final JWKSet jwtSet) {
return new ReferenceComparisonRefreshJWKSetEvaluator(jwtSet);
}
/**
* Returns {@code true} if refresh of the JWK set is required.
*
* @param jwkSet The JWK set. Must not be {@code null}.
*
* @return {@code true} if refresh is required, {@code false} if not.
*/
public abstract boolean requiresRefresh(final JWKSet jwkSet);
}