/// <summary> /// Ctor. /// </summary> /// <param name="next">Next middleware.</param> /// <param name="options">Client credentials authorization options.</param> public ClientCredentialsAuthorizationMiddleware(RequestDelegate next, ClientCredentialsAuthorizationOptions options) { _next = Check.NotNull(next, nameof(next)); _authorizationOptions = Check.NotNull(options, nameof(options)); Check.NotNullOrWhiteSpace(options.AuthorityUrl, nameof(options.AuthorityUrl)); Check.NotNullOrWhiteSpace(options.Scope, nameof(options.Scope)); }
/// <summary> /// Add client credentials authorization middleware to request pipeline. /// </summary> /// <param name="app"><see cref="IApplicationBuilder"/> where middleware is added.</param> /// <param name="configuration">Configuration from which the options are loaded. /// Configuration must contains ClientCredentialsAuthorization section.</param> /// <exception cref="InvalidOperationException"> /// When `ClientCredentialsAuthorization` section is missing in configuration. /// </exception> public static IApplicationBuilder UseClientCredentialsAuthorization( this IApplicationBuilder app, IConfiguration configuration) { ClientCredentialsAuthorizationOptions option = configuration.GetSection <ClientCredentialsAuthorizationOptions>(); if (option is null) { throw new InvalidOperationException( string.Format(Properties.Resources.OptionMissingSection, Helpers.GetSectionName <ClientCredentialsAuthorizationOptions>())); } return(app.UseMiddleware <ClientCredentialsAuthorizationMiddleware>(option)); }