private TokenSerializationResult createRefreshToken()

in library/src/main/java/org/apache/fineract/cn/permittedfeignclient/service/ApplicationAccessTokenService.java [115:139]


  private TokenSerializationResult createRefreshToken(final TokenCacheKey tokenCacheKey) {
    try (final AutoTenantContext ignored = new AutoTenantContext(tokenCacheKey.getTenant())) {
      logger.debug("Creating refresh token for {}", tokenCacheKey);

      final Optional<RsaKeyPairFactory.KeyPairHolder> optionalSigningKeyPair
              = tenantSignatureRepository.getLatestApplicationSigningKeyPair();

      final RsaKeyPairFactory.KeyPairHolder signingKeyPair = optionalSigningKeyPair.orElseThrow(AmitAuthenticationException::missingTenant);

      final TenantRefreshTokenSerializer.Specification specification = new TenantRefreshTokenSerializer.Specification()
              .setSourceApplication(applicationName)
              .setUser(tokenCacheKey.getUser())
              .setSecondsToLive(REFRESH_TOKEN_LIFESPAN)
              .setPrivateKey(signingKeyPair.privateKey())
              .setKeyTimestamp(signingKeyPair.getTimestamp());

      tokenCacheKey.getEndpointSet().ifPresent(specification::setEndpointSet);

      return tenantRefreshTokenSerializer.build(specification);
    }
    catch (final Exception e) {
      logger.error("Couldn't create refresh token for {}.", tokenCacheKey, e);
      throw new NotFoundException("Couldn't create refresh token.");
    }
  }