in ddm-notification-service-diia/src/main/java/com/epam/digital/data/platform/notification/diia/service/TokenCacheService.java [60:76]
public String getCachedTokenOrElse(@NonNull String cacheName, @NonNull String serviceName,
@NonNull Supplier<String> tokenSupplier) {
log.debug("Getting token for service {} from cache {}", serviceName, cacheName);
final var cache = Objects.requireNonNull(cacheManager.getCache(cacheName));
final var cachedToken = cache.get(serviceName, String.class);
var expirationTime = getExpirationTimeFromToken(cachedToken);
if (Objects.nonNull(expirationTime) && expirationTime.after(getCurrentDatePlusFiveSeconds())) {
return cachedToken;
}
var token = tokenSupplier.get();
if (Objects.nonNull(getExpirationTimeFromToken(token))) {
cache.put(serviceName, token);
}
return token;
}