diff --git a/src/OAuth2IntrospectionExtensions.cs b/src/OAuth2IntrospectionExtensions.cs index d745169..1f4681b 100644 --- a/src/OAuth2IntrospectionExtensions.cs +++ b/src/OAuth2IntrospectionExtensions.cs @@ -52,7 +52,7 @@ public static AuthenticationBuilder AddOAuth2Introspection(this AuthenticationBu { builder.Services.AddHttpClient(OAuth2IntrospectionDefaults.BackChannelHttpClientName); - builder.Services.TryAddEnumerable(ServiceDescriptor.Singleton, PostConfigureOAuth2IntrospectionOptions>()); + builder.Services.Add(ServiceDescriptor.Singleton>(p => ActivatorUtilities.CreateInstance(p, authenticationScheme))); return builder.AddScheme(authenticationScheme, configureOptions); } } diff --git a/src/PostConfigureOAuth2IntrospectionOptions.cs b/src/PostConfigureOAuth2IntrospectionOptions.cs index aa219a1..be371aa 100644 --- a/src/PostConfigureOAuth2IntrospectionOptions.cs +++ b/src/PostConfigureOAuth2IntrospectionOptions.cs @@ -13,17 +13,24 @@ namespace IdentityModel.AspNetCore.OAuth2Introspection { internal class PostConfigureOAuth2IntrospectionOptions : IPostConfigureOptions { + private readonly string _name; private readonly IDistributedCache _cache; private readonly IHttpClientFactory _httpClientFactory; - public PostConfigureOAuth2IntrospectionOptions(IHttpClientFactory httpClientFactory, IDistributedCache cache = null) + public PostConfigureOAuth2IntrospectionOptions(string name, IHttpClientFactory httpClientFactory, IDistributedCache cache = null) { + _name = name; _cache = cache; _httpClientFactory = httpClientFactory; } public void PostConfigure(string name, OAuth2IntrospectionOptions options) { + if (name != _name) + { + return; + } + options.Validate(); if (options.EnableCaching && _cache == null)