public static IHttpClientBuilder AddIdentity(this IHttpClientBuilder clientBuilder, IIdentityConfig identityConfig, IOAuthTokenStrategy tokenStrategy) { clientBuilder.ConfigureHttpClient(httpClient => { var tokenProvider = new OAuthTokenProvider(httpClient, identityConfig, tokenStrategy); httpClient.DefaultRequestHeaders.Add( Constants.RequestAuthorizationHeader, tokenProvider.GetAccessToken()); }); return(clientBuilder); }
public static IHttpClientBuilder GenerateCorrelationId(this IHttpClientBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.ConfigureHttpClient((sp, client) => { var correlationIdOptions = sp.GetRequiredService <IOptions <CorrelationIdOptions> >().Value; var correlationIdProvider = sp.GetRequiredService <ICorrelationIdProvider>(); client.DefaultRequestHeaders.Add(correlationIdOptions.RequestHeader, correlationIdProvider.GenerateCorrelationId(null)); }); return(builder); }
public static IHttpClientBuilder WithSimpleDiscovery(this IHttpClientBuilder builder) { builder.ConfigureHttpClient((provider, httpClient) => { var registry = provider.GetRequiredService <IServiceRegistry>(); var serviceEndpoint = registry.GetService(builder.Name); if (string.IsNullOrEmpty(serviceEndpoint)) { throw new InvalidOperationException($"The {builder.Name} service has not been registered."); } httpClient.BaseAddress = new Uri(serviceEndpoint); }); return(builder); }