public String getCachedTokenOrElse()

in ddm-bpm-extension/src/main/java/com/epam/digital/data/platform/bpms/extension/service/TokenCacheService.java [62:78]


  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;
  }