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.");
}
}