internal void ConfigureIntrospection(OAuth2IntrospectionOptions introspectionOptions)
        {
            if (String.IsNullOrWhiteSpace(ApiSecret))
            {
                return;
            }

            if (String.IsNullOrWhiteSpace(ApiName))
            {
                throw new ArgumentException("ApiName must be configured if ApiSecret is set.");
            }

            introspectionOptions.Authority       = Authority;
            introspectionOptions.ClientId        = ApiName;
            introspectionOptions.ClientSecret    = ApiSecret;
            introspectionOptions.NameClaimType   = NameClaimType;
            introspectionOptions.RoleClaimType   = RoleClaimType;
            introspectionOptions.TokenRetriever  = InternalTokenRetriever;
            introspectionOptions.SaveToken       = SaveToken;
            introspectionOptions.DiscoveryPolicy = IntrospectionDiscoveryPolicy;

            introspectionOptions.EnableCaching  = EnableCaching;
            introspectionOptions.CacheDuration  = CacheDuration;
            introspectionOptions.CacheKeyPrefix = CacheKeyPrefix;

            introspectionOptions.DiscoveryPolicy.RequireHttps = RequireHttpsMetadata;

            introspectionOptions.Events = new OAuth2IntrospectionEvents
            {
                OnAuthenticationFailed = e => OAuth2IntrospectionEvents.AuthenticationFailed(e),
                OnTokenValidated       = e => OAuth2IntrospectionEvents.OnTokenValidated(e),
            };
        }
예제 #2
0
 /// <summary>
 /// Dafault options constructor
 /// </summary>
 public OAuth2IntrospectionOptions()
 {
     Events = new OAuth2IntrospectionEvents();
 }