public Optional<OAuthSubscriptionHandler> create(SubscriptionName subscriptionName) { Subscription subscription = subscriptionRepository.getSubscriptionDetails(subscriptionName); if (subscription.hasOAuthPolicy()) { try { String providerName = subscription.getOAuthPolicy().getProviderName(); logger.info("Creating OAuth handler subscription {} using {} OAuth provider", subscriptionName, providerName); OAuthTokenRequestRateLimiter rateLimiter = rateLimiterLoader.create(subscription); return Optional.of(new OAuthSubscriptionHandler(subscriptionName, providerName, accessTokens, rateLimiter)); } catch (Exception e) { logger.error("Failed to create OAuth handler for subscription {}, {}", subscriptionName.getQualifiedName(), e.getMessage()); } } return Optional.empty(); } }
public Optional<OAuthSubscriptionHandler> create(SubscriptionName subscriptionName) { Subscription subscription = subscriptionRepository.getSubscriptionDetails(subscriptionName); if (subscription.hasOAuthPolicy()) { try { String providerName = subscription.getOAuthPolicy().getProviderName(); logger.info("Creating OAuth handler subscription {} using {} OAuth provider", subscriptionName, providerName); OAuthTokenRequestRateLimiter rateLimiter = rateLimiterLoader.create(subscription); return Optional.of(new OAuthSubscriptionHandler(subscriptionName, providerName, accessTokens, rateLimiter)); } catch (Exception e) { logger.error("Failed to create OAuth handler for subscription {}, {}", subscriptionName.getQualifiedName(), e.getMessage()); } } return Optional.empty(); } }
@Override public OAuthAccessToken load(SubscriptionName subscriptionName) throws Exception { Subscription subscription = subscriptionRepository.getSubscriptionDetails(subscriptionName); SubscriptionOAuthPolicy oAuthPolicy = subscription.getOAuthPolicy(); String providerName = oAuthPolicy.getProviderName(); OAuthProvider oAuthProvider = oAuthProviderRepository.getOAuthProviderDetails(providerName); OAuthTokenRequest request; if (USERNAME_PASSWORD.equals(oAuthPolicy.getGrantType())) { request = getOAuthUsernamePasswordGrantTokenRequest(oAuthPolicy, oAuthProvider); } else { request = getOAuthClientCredentialsGrantTokenRequest(oAuthPolicy, oAuthProvider); } metrics.oAuthSubscriptionTokenRequestMeter(subscription, providerName).mark(); try (Timer.Context timer = metrics.oAuthProviderLatencyTimer(providerName).time()) { return oAuthClient.getToken(request); } }
@Override public OAuthAccessToken load(SubscriptionName subscriptionName) throws Exception { Subscription subscription = subscriptionRepository.getSubscriptionDetails(subscriptionName); SubscriptionOAuthPolicy oAuthPolicy = subscription.getOAuthPolicy(); String providerName = oAuthPolicy.getProviderName(); OAuthProvider oAuthProvider = oAuthProviderRepository.getOAuthProviderDetails(providerName); OAuthTokenRequest request; if (USERNAME_PASSWORD.equals(oAuthPolicy.getGrantType())) { request = getOAuthUsernamePasswordGrantTokenRequest(oAuthPolicy, oAuthProvider); } else { request = getOAuthClientCredentialsGrantTokenRequest(oAuthPolicy, oAuthProvider); } metrics.oAuthSubscriptionTokenRequestMeter(subscription, providerName).mark(); try (Timer.Context timer = metrics.oAuthProviderLatencyTimer(providerName).time()) { return oAuthClient.getToken(request); } }
public OAuthTokenRequestRateLimiter create(Subscription subscription) { String providerName = subscription.getOAuthPolicy().getProviderName(); OAuthProvider oAuthProvider = oAuthProviderRepository.getOAuthProviderDetails(providerName); double initialRate = delayToRate(oAuthProvider.getTokenRequestInitialDelay()); double minimalRate = delayToRate(oAuthProvider.getTokenRequestMaxDelay()); return new OAuthTokenRequestRateLimiter(initialRate, minimalRate, rateReductionFactor, oAuthProvider.getTokenRequestInitialDelay()); }
public OAuthTokenRequestRateLimiter create(Subscription subscription) { String providerName = subscription.getOAuthPolicy().getProviderName(); OAuthProvider oAuthProvider = oAuthProviderRepository.getOAuthProviderDetails(providerName); double initialRate = delayToRate(oAuthProvider.getTokenRequestInitialDelay()); double minimalRate = delayToRate(oAuthProvider.getTokenRequestMaxDelay()); return new OAuthTokenRequestRateLimiter(initialRate, minimalRate, rateReductionFactor, oAuthProvider.getTokenRequestInitialDelay()); }