diff --git a/gen/OpenIddict.Client.WebIntegration.Generators/OpenIddictClientWebIntegrationGenerator.cs b/gen/OpenIddict.Client.WebIntegration.Generators/OpenIddictClientWebIntegrationGenerator.cs index 32028c4d..8d7e8a6b 100644 --- a/gen/OpenIddict.Client.WebIntegration.Generators/OpenIddictClientWebIntegrationGenerator.cs +++ b/gen/OpenIddict.Client.WebIntegration.Generators/OpenIddictClientWebIntegrationGenerator.cs @@ -436,11 +436,7 @@ public sealed partial class OpenIddictClientWebIntegrationConfiguration public {{ provider.name }}(IServiceProvider provider) => _provider = provider ?? throw new ArgumentNullException(nameof(provider)); - /// - /// Ensures the {{ provider.name }} configuration is in a consistent and valid state. - /// - /// The name of the options instance to configure, if applicable. - /// The options instance to initialize. + /// public void PostConfigure(string? name, OpenIddictClientWebIntegrationOptions.{{ provider.name }} options) { {{~ for setting in provider.settings ~}} @@ -515,10 +511,7 @@ public sealed partial class OpenIddictClientWebIntegrationConfiguration {{~ end ~}} } - /// - /// Registers the {{ provider.name }} integration in the OpenIddict client options. - /// - /// The options instance to initialize. + /// public void Configure(OpenIddictClientOptions options) { // Resolve the provider options from the service provider and create a registration based on the specified settings. diff --git a/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreConfiguration.cs b/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreConfiguration.cs index 2cd0b55c..f8d4bc5d 100644 --- a/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreConfiguration.cs +++ b/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreConfiguration.cs @@ -17,10 +17,7 @@ public sealed class OpenIddictClientAspNetCoreConfiguration : IConfigureOptions< IConfigureOptions, IPostConfigureOptions { - /// - /// Registers the OpenIddict client handler in the global authentication options. - /// - /// The options instance to initialize. + /// public void Configure(AuthenticationOptions options) { if (options is null) @@ -39,6 +36,7 @@ public sealed class OpenIddictClientAspNetCoreConfiguration : IConfigureOptions< OpenIddictClientAspNetCoreDefaults.AuthenticationScheme, displayName: null); } + /// public void Configure(OpenIddictClientOptions options) { if (options is null) @@ -50,11 +48,7 @@ public sealed class OpenIddictClientAspNetCoreConfiguration : IConfigureOptions< options.Handlers.AddRange(OpenIddictClientAspNetCoreHandlers.DefaultHandlers); } - /// - /// Ensures that the authentication configuration is in a consistent and valid state. - /// - /// The authentication scheme associated with the handler instance. - /// The options instance to initialize. + /// public void PostConfigure(string? name, AuthenticationOptions options) { if (options is null) diff --git a/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreHandlerFilters.cs b/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreHandlerFilters.cs index acaa53fa..4b7da143 100644 --- a/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreHandlerFilters.cs +++ b/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreHandlerFilters.cs @@ -26,6 +26,7 @@ public static class OpenIddictClientAspNetCoreHandlerFilters public RequireErrorPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -42,6 +43,7 @@ public static class OpenIddictClientAspNetCoreHandlerFilters /// public sealed class RequireHttpRequest : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -64,6 +66,7 @@ public static class OpenIddictClientAspNetCoreHandlerFilters public RequirePostLogoutRedirectionEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -86,6 +89,7 @@ public static class OpenIddictClientAspNetCoreHandlerFilters public RequireRedirectionEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -107,6 +111,7 @@ public static class OpenIddictClientAspNetCoreHandlerFilters public RequireStatusCodePagesIntegrationEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -128,6 +133,7 @@ public static class OpenIddictClientAspNetCoreHandlerFilters public RequireTransportSecurityRequirementEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) diff --git a/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionConfiguration.cs b/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionConfiguration.cs index e41a1eae..2da06dd5 100644 --- a/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionConfiguration.cs +++ b/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionConfiguration.cs @@ -26,6 +26,7 @@ public sealed class OpenIddictClientDataProtectionConfiguration : IConfigureOpti public OpenIddictClientDataProtectionConfiguration(IDataProtectionProvider dataProtectionProvider) => _dataProtectionProvider = dataProtectionProvider; + /// public void Configure(OpenIddictClientOptions options) { if (options is null) @@ -37,12 +38,7 @@ public sealed class OpenIddictClientDataProtectionConfiguration : IConfigureOpti options.Handlers.AddRange(OpenIddictClientDataProtectionHandlers.DefaultHandlers); } - /// - /// Populates the default OpenIddict ASP.NET Core Data Protection server options - /// and ensures that the configuration is in a consistent and valid state. - /// - /// The name of the options instance to configure, if applicable. - /// The options instance to initialize. + /// public void PostConfigure(string? name, OpenIddictClientDataProtectionOptions options) { if (options is null) diff --git a/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionHandlerFilters.cs b/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionHandlerFilters.cs index 63b4331b..eb965363 100644 --- a/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionHandlerFilters.cs +++ b/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionHandlerFilters.cs @@ -17,6 +17,7 @@ public static class OpenIddictClientDataProtectionHandlerFilters /// public sealed class RequireDataProtectionTokenFormat : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(GenerateTokenContext context) { if (context is null) diff --git a/src/OpenIddict.Client.Owin/OpenIddictClientOwinConfiguration.cs b/src/OpenIddict.Client.Owin/OpenIddictClientOwinConfiguration.cs index 40147741..bebf1c8d 100644 --- a/src/OpenIddict.Client.Owin/OpenIddictClientOwinConfiguration.cs +++ b/src/OpenIddict.Client.Owin/OpenIddictClientOwinConfiguration.cs @@ -16,6 +16,7 @@ namespace OpenIddict.Client.Owin; public sealed class OpenIddictClientOwinConfiguration : IConfigureOptions, IPostConfigureOptions { + /// public void Configure(OpenIddictClientOptions options) { if (options is null) @@ -27,6 +28,7 @@ public sealed class OpenIddictClientOwinConfiguration : IConfigureOptions public void PostConfigure(string? name, OpenIddictClientOwinOptions options) { if (options is null) diff --git a/src/OpenIddict.Client.Owin/OpenIddictClientOwinHandlerFilters.cs b/src/OpenIddict.Client.Owin/OpenIddictClientOwinHandlerFilters.cs index df79287c..4a494c6b 100644 --- a/src/OpenIddict.Client.Owin/OpenIddictClientOwinHandlerFilters.cs +++ b/src/OpenIddict.Client.Owin/OpenIddictClientOwinHandlerFilters.cs @@ -27,6 +27,7 @@ public static class OpenIddictClientOwinHandlerFilters public RequirePostLogoutRedirectionEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -49,6 +50,7 @@ public static class OpenIddictClientOwinHandlerFilters public RequireRedirectionEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -70,6 +72,7 @@ public static class OpenIddictClientOwinHandlerFilters public RequireErrorPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -86,6 +89,7 @@ public static class OpenIddictClientOwinHandlerFilters /// public sealed class RequireOwinRequest : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -107,6 +111,7 @@ public static class OpenIddictClientOwinHandlerFilters public RequireTransportSecurityRequirementEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) diff --git a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpConfiguration.cs b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpConfiguration.cs index d83a8bc1..f8302944 100644 --- a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpConfiguration.cs +++ b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpConfiguration.cs @@ -21,10 +21,15 @@ public sealed class OpenIddictClientSystemNetHttpConfiguration : IConfigureOptio #if !SUPPORTS_SERVICE_PROVIDER_IN_HTTP_MESSAGE_HANDLER_BUILDER private readonly IServiceProvider _provider; + /// + /// Creates a new instance of the class. + /// + /// The service provider. public OpenIddictClientSystemNetHttpConfiguration(IServiceProvider provider) => _provider = provider ?? throw new ArgumentNullException(nameof(provider)); #endif + /// public void Configure(OpenIddictClientOptions options) { if (options is null) @@ -36,8 +41,10 @@ public sealed class OpenIddictClientSystemNetHttpConfiguration : IConfigureOptio options.Handlers.AddRange(OpenIddictClientSystemNetHttpHandlers.DefaultHandlers); } + /// public void Configure(HttpClientFactoryOptions options) => Configure(Options.DefaultName, options); + /// public void Configure(string? name, HttpClientFactoryOptions options) { if (options is null) diff --git a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlerFilters.cs b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlerFilters.cs index 43028296..1dc74db3 100644 --- a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlerFilters.cs +++ b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlerFilters.cs @@ -16,6 +16,7 @@ public static class OpenIddictClientSystemNetHttpHandlerFilters /// public sealed class RequireHttpMetadataUri : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(BaseExternalContext context) { if (context is null) diff --git a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationConfiguration.cs b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationConfiguration.cs index fb1140d1..b1ee934b 100644 --- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationConfiguration.cs +++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationConfiguration.cs @@ -15,11 +15,7 @@ namespace OpenIddict.Client.WebIntegration; [EditorBrowsable(EditorBrowsableState.Advanced)] public sealed partial class OpenIddictClientWebIntegrationConfiguration : IConfigureOptions { - /// - /// Populates the default OpenIddict client Web integration options - /// and ensures that the configuration is in a consistent and valid state. - /// - /// The options instance to initialize. + /// public void Configure(OpenIddictClientOptions options) { if (options is null) diff --git a/src/OpenIddict.Client/IOpenIddictClientDispatcher.cs b/src/OpenIddict.Client/IOpenIddictClientDispatcher.cs index b1a71cc7..385f30cd 100644 --- a/src/OpenIddict.Client/IOpenIddictClientDispatcher.cs +++ b/src/OpenIddict.Client/IOpenIddictClientDispatcher.cs @@ -8,8 +8,20 @@ using System.ComponentModel; namespace OpenIddict.Client; +/// +/// Represents a service able to dispatch events to a list of handlers. +/// [EditorBrowsable(EditorBrowsableState.Advanced)] public interface IOpenIddictClientDispatcher { + /// + /// Dispatches an event of the specified type to the handlers that + /// implement . + /// + /// The type of the context associated with the event to dispatch. + /// The context associated with the event to dispatch. + /// + /// A that can be used to monitor the asynchronous operation. + /// ValueTask DispatchAsync(TContext context) where TContext : BaseContext; } diff --git a/src/OpenIddict.Client/IOpenIddictClientFactory.cs b/src/OpenIddict.Client/IOpenIddictClientFactory.cs index 88df0a0a..24e1dfd2 100644 --- a/src/OpenIddict.Client/IOpenIddictClientFactory.cs +++ b/src/OpenIddict.Client/IOpenIddictClientFactory.cs @@ -8,8 +8,19 @@ using System.ComponentModel; namespace OpenIddict.Client; +/// +/// Represents a service responsible for creating transactions. +/// [EditorBrowsable(EditorBrowsableState.Never)] public interface IOpenIddictClientFactory { + /// + /// Creates a new that is used as a + /// way to store per-request data needed to process the requested operation. + /// + /// + /// A that can be used to monitor the asynchronous + /// operation, whose result returns the created transaction. + /// ValueTask CreateTransactionAsync(); } diff --git a/src/OpenIddict.Client/IOpenIddictClientHandlerFilter.cs b/src/OpenIddict.Client/IOpenIddictClientHandlerFilter.cs index 2277a641..f11b828f 100644 --- a/src/OpenIddict.Client/IOpenIddictClientHandlerFilter.cs +++ b/src/OpenIddict.Client/IOpenIddictClientHandlerFilter.cs @@ -6,7 +6,21 @@ namespace OpenIddict.Client; +/// +/// Represents a handler filter responsible for determining whether a +/// handler should process an event depending on the specified context. +/// +/// The type of the context associated with events filtered by this instance. public interface IOpenIddictClientHandlerFilter where TContext : BaseContext { + /// + /// Determines whether the handler referencing this filter instance should + /// be instantiated and process the event, based on the specified context. + /// + /// The context associated with the event to process. + /// + /// A that can be used to monitor the asynchronous operation, + /// whose boolean result determines whether the handler will be invoked or not. + /// ValueTask IsActiveAsync(TContext context); } diff --git a/src/OpenIddict.Client/OpenIddictClientConfiguration.cs b/src/OpenIddict.Client/OpenIddictClientConfiguration.cs index 98a6788d..bdb34c68 100644 --- a/src/OpenIddict.Client/OpenIddictClientConfiguration.cs +++ b/src/OpenIddict.Client/OpenIddictClientConfiguration.cs @@ -21,15 +21,14 @@ public sealed class OpenIddictClientConfiguration : IPostConfigureOptions + /// Creates a new instance of the class. + /// + /// The OpenIddict client service. public OpenIddictClientConfiguration(OpenIddictClientService service) => _service = service ?? throw new ArgumentNullException(nameof(service)); - /// - /// Populates the default OpenIddict client options and ensures - /// that the configuration is in a consistent and valid state. - /// - /// The authentication scheme associated with the handler instance. - /// The options instance to initialize. + /// public void PostConfigure(string? name, OpenIddictClientOptions options) { if (options is null) diff --git a/src/OpenIddict.Client/OpenIddictClientDispatcher.cs b/src/OpenIddict.Client/OpenIddictClientDispatcher.cs index 91a6c59d..4b3809d5 100644 --- a/src/OpenIddict.Client/OpenIddictClientDispatcher.cs +++ b/src/OpenIddict.Client/OpenIddictClientDispatcher.cs @@ -10,6 +10,9 @@ using Microsoft.Extensions.Options; namespace OpenIddict.Client; +/// +/// Represents a service able to dispatch events to a list of handlers. +/// [EditorBrowsable(EditorBrowsableState.Advanced)] public sealed class OpenIddictClientDispatcher : IOpenIddictClientDispatcher { @@ -30,6 +33,7 @@ public sealed class OpenIddictClientDispatcher : IOpenIddictClientDispatcher _provider = provider ?? throw new ArgumentNullException(nameof(provider)); } + /// public async ValueTask DispatchAsync(TContext context) where TContext : BaseContext { if (context is null) diff --git a/src/OpenIddict.Client/OpenIddictClientFactory.cs b/src/OpenIddict.Client/OpenIddictClientFactory.cs index 552f4375..59cf992d 100644 --- a/src/OpenIddict.Client/OpenIddictClientFactory.cs +++ b/src/OpenIddict.Client/OpenIddictClientFactory.cs @@ -10,6 +10,9 @@ using Microsoft.Extensions.Options; namespace OpenIddict.Client; +/// +/// Represents a service responsible for creating transactions. +/// [EditorBrowsable(EditorBrowsableState.Never)] public sealed class OpenIddictClientFactory : IOpenIddictClientFactory { @@ -27,6 +30,7 @@ public sealed class OpenIddictClientFactory : IOpenIddictClientFactory _options = options ?? throw new ArgumentNullException(nameof(options)); } + /// public ValueTask CreateTransactionAsync() => new(new OpenIddictClientTransaction { diff --git a/src/OpenIddict.Client/OpenIddictClientHandlerFilters.cs b/src/OpenIddict.Client/OpenIddictClientHandlerFilters.cs index d8e907e4..8bf0de5d 100644 --- a/src/OpenIddict.Client/OpenIddictClientHandlerFilters.cs +++ b/src/OpenIddict.Client/OpenIddictClientHandlerFilters.cs @@ -16,6 +16,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireAuthorizationCodeValidated : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -32,6 +33,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireBackchannelAccessTokenValidated : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -48,6 +50,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireBackchannelIdentityTokenPrincipal : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -64,6 +67,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireBackchannelIdentityTokenValidated : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -80,6 +84,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireClientAssertionTokenGenerated : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -96,6 +101,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireFrontchannelAccessTokenValidated : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -112,6 +118,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireFrontchannelIdentityTokenPrincipal : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -128,6 +135,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireFrontchannelIdentityTokenValidated : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -145,6 +153,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireInteractiveGrantType : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessChallengeContext context) { if (context is null) @@ -166,6 +175,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireJsonWebTokenFormat : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(GenerateTokenContext context) { if (context is null) @@ -182,6 +192,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireLoginStateTokenGenerated : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessChallengeContext context) { if (context is null) @@ -198,6 +209,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireLogoutStateTokenGenerated : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessSignOutContext context) { if (context is null) @@ -214,6 +226,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequirePostLogoutRedirectionRequest : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -230,6 +243,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireRedirectionRequest : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -246,6 +260,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireRefreshTokenValidated : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -262,6 +277,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireStateTokenPrincipal : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -278,6 +294,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireStateTokenValidated : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -294,6 +311,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireTokenEntryCreated : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(GenerateTokenContext context) { if (context is null) @@ -310,6 +328,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireTokenIdResolved : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ValidateTokenContext context) { if (context is null) @@ -326,6 +345,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireTokenPayloadPersisted : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(GenerateTokenContext context) { if (context is null) @@ -342,6 +362,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireTokenRequest : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -358,6 +379,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireTokenStorageEnabled : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -374,6 +396,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireUserinfoRequest : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -390,6 +413,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireUserinfoTokenExtracted : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -406,6 +430,7 @@ public static class OpenIddictClientHandlerFilters /// public sealed class RequireUserinfoTokenPrincipal : IOpenIddictClientHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) diff --git a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreConfiguration.cs b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreConfiguration.cs index c6681d64..fd81da00 100644 --- a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreConfiguration.cs +++ b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreConfiguration.cs @@ -18,10 +18,7 @@ public sealed class OpenIddictServerAspNetCoreConfiguration : IConfigureOptions< IPostConfigureOptions, IPostConfigureOptions { - /// - /// Registers the OpenIddict server handler in the global authentication options. - /// - /// The options instance to initialize. + /// public void Configure(AuthenticationOptions options) { if (options is null) @@ -40,6 +37,7 @@ public sealed class OpenIddictServerAspNetCoreConfiguration : IConfigureOptions< OpenIddictServerAspNetCoreDefaults.AuthenticationScheme, displayName: null); } + /// public void Configure(OpenIddictServerOptions options) { if (options is null) @@ -51,11 +49,7 @@ public sealed class OpenIddictServerAspNetCoreConfiguration : IConfigureOptions< options.Handlers.AddRange(OpenIddictServerAspNetCoreHandlers.DefaultHandlers); } - /// - /// Ensures that the authentication configuration is in a consistent and valid state. - /// - /// The name of the options instance to configure, if applicable. - /// The options instance to initialize. + /// public void PostConfigure(string? name, AuthenticationOptions options) { if (options is null) @@ -106,12 +100,7 @@ public sealed class OpenIddictServerAspNetCoreConfiguration : IConfigureOptions< } } - /// - /// Populates the default OpenIddict server ASP.NET Core options and - /// ensures that the configuration is in a consistent and valid state. - /// - /// The name of the options instance to configure, if applicable. - /// The options instance to initialize. + /// public void PostConfigure(string? name, OpenIddictServerAspNetCoreOptions options) { if (options is null) diff --git a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlerFilters.cs b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlerFilters.cs index 4934091f..86cd5e98 100644 --- a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlerFilters.cs +++ b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreHandlerFilters.cs @@ -26,6 +26,7 @@ public static class OpenIddictServerAspNetCoreHandlerFilters public RequireAuthorizationRequestCachingEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -48,6 +49,7 @@ public static class OpenIddictServerAspNetCoreHandlerFilters public RequireAuthorizationEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -69,6 +71,7 @@ public static class OpenIddictServerAspNetCoreHandlerFilters public RequireErrorPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -85,6 +88,7 @@ public static class OpenIddictServerAspNetCoreHandlerFilters /// public sealed class RequireHttpRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -106,6 +110,7 @@ public static class OpenIddictServerAspNetCoreHandlerFilters public RequireLogoutRequestCachingEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -128,6 +133,7 @@ public static class OpenIddictServerAspNetCoreHandlerFilters public RequireLogoutEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -149,6 +155,7 @@ public static class OpenIddictServerAspNetCoreHandlerFilters public RequireStatusCodePagesIntegrationEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -170,6 +177,7 @@ public static class OpenIddictServerAspNetCoreHandlerFilters public RequireTransportSecurityRequirementEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -192,6 +200,7 @@ public static class OpenIddictServerAspNetCoreHandlerFilters public RequireTokenEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -214,6 +223,7 @@ public static class OpenIddictServerAspNetCoreHandlerFilters public RequireUserinfoEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -236,6 +246,7 @@ public static class OpenIddictServerAspNetCoreHandlerFilters public RequireVerificationEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) diff --git a/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionConfiguration.cs b/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionConfiguration.cs index de8b378a..2b8f1830 100644 --- a/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionConfiguration.cs +++ b/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionConfiguration.cs @@ -26,6 +26,7 @@ public sealed class OpenIddictServerDataProtectionConfiguration : IConfigureOpti public OpenIddictServerDataProtectionConfiguration(IDataProtectionProvider dataProtectionProvider) => _dataProtectionProvider = dataProtectionProvider; + /// public void Configure(OpenIddictServerOptions options) { if (options is null) @@ -37,12 +38,7 @@ public sealed class OpenIddictServerDataProtectionConfiguration : IConfigureOpti options.Handlers.AddRange(OpenIddictServerDataProtectionHandlers.DefaultHandlers); } - /// - /// Populates the default OpenIddict ASP.NET Core Data Protection server options - /// and ensures that the configuration is in a consistent and valid state. - /// - /// The name of the options instance to configure, if applicable. - /// The options instance to initialize. + /// public void PostConfigure(string? name, OpenIddictServerDataProtectionOptions options) { if (options is null) diff --git a/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionHandlerFilters.cs b/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionHandlerFilters.cs index ec627106..12db3e80 100644 --- a/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionHandlerFilters.cs +++ b/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionHandlerFilters.cs @@ -17,6 +17,7 @@ public static class OpenIddictServerDataProtectionHandlerFilters /// public sealed class RequireDataProtectionTokenFormat : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(GenerateTokenContext context) { if (context is null) diff --git a/src/OpenIddict.Server.Owin/OpenIddictServerOwinConfiguration.cs b/src/OpenIddict.Server.Owin/OpenIddictServerOwinConfiguration.cs index caf5a9a0..c3498696 100644 --- a/src/OpenIddict.Server.Owin/OpenIddictServerOwinConfiguration.cs +++ b/src/OpenIddict.Server.Owin/OpenIddictServerOwinConfiguration.cs @@ -16,6 +16,7 @@ namespace OpenIddict.Server.Owin; public sealed class OpenIddictServerOwinConfiguration : IConfigureOptions, IPostConfigureOptions { + /// public void Configure(OpenIddictServerOptions options) { if (options is null) @@ -27,6 +28,7 @@ public sealed class OpenIddictServerOwinConfiguration : IConfigureOptions public void PostConfigure(string? name, OpenIddictServerOwinOptions options) { if (options is null) diff --git a/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlerFilters.cs b/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlerFilters.cs index e2e5cedc..d8799f15 100644 --- a/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlerFilters.cs +++ b/src/OpenIddict.Server.Owin/OpenIddictServerOwinHandlerFilters.cs @@ -24,6 +24,7 @@ public static class OpenIddictServerOwinHandlerFilters public RequireAuthorizationRequestCachingEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -46,6 +47,7 @@ public static class OpenIddictServerOwinHandlerFilters public RequireAuthorizationEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -67,6 +69,7 @@ public static class OpenIddictServerOwinHandlerFilters public RequireErrorPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -88,6 +91,7 @@ public static class OpenIddictServerOwinHandlerFilters public RequireLogoutRequestCachingEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -110,6 +114,7 @@ public static class OpenIddictServerOwinHandlerFilters public RequireLogoutEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -126,6 +131,7 @@ public static class OpenIddictServerOwinHandlerFilters /// public sealed class RequireOwinRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -147,6 +153,7 @@ public static class OpenIddictServerOwinHandlerFilters public RequireTransportSecurityRequirementEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -169,6 +176,7 @@ public static class OpenIddictServerOwinHandlerFilters public RequireTokenEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -191,6 +199,7 @@ public static class OpenIddictServerOwinHandlerFilters public RequireUserinfoEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -213,6 +222,7 @@ public static class OpenIddictServerOwinHandlerFilters public RequireVerificationEndpointPassthroughEnabled(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) diff --git a/src/OpenIddict.Server/IOpenIddictServerDispatcher.cs b/src/OpenIddict.Server/IOpenIddictServerDispatcher.cs index d6d7ec12..22002fe9 100644 --- a/src/OpenIddict.Server/IOpenIddictServerDispatcher.cs +++ b/src/OpenIddict.Server/IOpenIddictServerDispatcher.cs @@ -8,8 +8,20 @@ using System.ComponentModel; namespace OpenIddict.Server; +/// +/// Represents a service able to dispatch events to a list of handlers. +/// [EditorBrowsable(EditorBrowsableState.Advanced)] public interface IOpenIddictServerDispatcher { + /// + /// Dispatches an event of the specified type to the handlers that + /// implement . + /// + /// The type of the context associated with the event to dispatch. + /// The context associated with the event to dispatch. + /// + /// A that can be used to monitor the asynchronous operation. + /// ValueTask DispatchAsync(TContext context) where TContext : BaseContext; } diff --git a/src/OpenIddict.Server/IOpenIddictServerFactory.cs b/src/OpenIddict.Server/IOpenIddictServerFactory.cs index 8d3d136c..40fb02d3 100644 --- a/src/OpenIddict.Server/IOpenIddictServerFactory.cs +++ b/src/OpenIddict.Server/IOpenIddictServerFactory.cs @@ -8,8 +8,19 @@ using System.ComponentModel; namespace OpenIddict.Server; +/// +/// Represents a service responsible for creating transactions. +/// [EditorBrowsable(EditorBrowsableState.Never)] public interface IOpenIddictServerFactory { + /// + /// Creates a new that is used as a + /// way to store per-request data needed to process the requested operation. + /// + /// + /// A that can be used to monitor the asynchronous + /// operation, whose result returns the created transaction. + /// ValueTask CreateTransactionAsync(); } diff --git a/src/OpenIddict.Server/IOpenIddictServerHandlerFilter.cs b/src/OpenIddict.Server/IOpenIddictServerHandlerFilter.cs index 60154590..fd59118a 100644 --- a/src/OpenIddict.Server/IOpenIddictServerHandlerFilter.cs +++ b/src/OpenIddict.Server/IOpenIddictServerHandlerFilter.cs @@ -6,7 +6,21 @@ namespace OpenIddict.Server; +/// +/// Represents a handler filter responsible for determining whether a +/// handler should process an event depending on the specified context. +/// +/// The type of the context associated with events filtered by this instance. public interface IOpenIddictServerHandlerFilter where TContext : BaseContext { + /// + /// Determines whether the handler referencing this filter instance should + /// be instantiated and process the event, based on the specified context. + /// + /// The context associated with the event to process. + /// + /// A that can be used to monitor the asynchronous operation, + /// whose boolean result determines whether the handler will be invoked or not. + /// ValueTask IsActiveAsync(TContext context); } diff --git a/src/OpenIddict.Server/OpenIddictServerConfiguration.cs b/src/OpenIddict.Server/OpenIddictServerConfiguration.cs index 1d8d7327..76e12fd4 100644 --- a/src/OpenIddict.Server/OpenIddictServerConfiguration.cs +++ b/src/OpenIddict.Server/OpenIddictServerConfiguration.cs @@ -18,12 +18,7 @@ namespace OpenIddict.Server; [EditorBrowsable(EditorBrowsableState.Advanced)] public sealed class OpenIddictServerConfiguration : IPostConfigureOptions { - /// - /// Populates the default OpenIddict server options and ensures - /// that the configuration is in a consistent and valid state. - /// - /// The name of the options instance to configure, if applicable. - /// The options instance to initialize. + /// public void PostConfigure(string? name, OpenIddictServerOptions options) { if (options is null) diff --git a/src/OpenIddict.Server/OpenIddictServerDispatcher.cs b/src/OpenIddict.Server/OpenIddictServerDispatcher.cs index 7618f66d..aafa17ea 100644 --- a/src/OpenIddict.Server/OpenIddictServerDispatcher.cs +++ b/src/OpenIddict.Server/OpenIddictServerDispatcher.cs @@ -10,6 +10,9 @@ using Microsoft.Extensions.Options; namespace OpenIddict.Server; +/// +/// Represents a service able to dispatch events to a list of handlers. +/// [EditorBrowsable(EditorBrowsableState.Advanced)] public sealed class OpenIddictServerDispatcher : IOpenIddictServerDispatcher { @@ -30,6 +33,7 @@ public sealed class OpenIddictServerDispatcher : IOpenIddictServerDispatcher _provider = provider ?? throw new ArgumentNullException(nameof(provider)); } + /// public async ValueTask DispatchAsync(TContext context) where TContext : BaseContext { if (context is null) diff --git a/src/OpenIddict.Server/OpenIddictServerFactory.cs b/src/OpenIddict.Server/OpenIddictServerFactory.cs index 7e583712..df714124 100644 --- a/src/OpenIddict.Server/OpenIddictServerFactory.cs +++ b/src/OpenIddict.Server/OpenIddictServerFactory.cs @@ -10,6 +10,9 @@ using Microsoft.Extensions.Options; namespace OpenIddict.Server; +/// +/// Represents a service responsible for creating transactions. +/// [EditorBrowsable(EditorBrowsableState.Never)] public sealed class OpenIddictServerFactory : IOpenIddictServerFactory { @@ -27,6 +30,7 @@ public sealed class OpenIddictServerFactory : IOpenIddictServerFactory _options = options ?? throw new ArgumentNullException(nameof(options)); } + /// public ValueTask CreateTransactionAsync() => new(new OpenIddictServerTransaction { diff --git a/src/OpenIddict.Server/OpenIddictServerHandlerFilters.cs b/src/OpenIddict.Server/OpenIddictServerHandlerFilters.cs index f905a1c7..800419cd 100644 --- a/src/OpenIddict.Server/OpenIddictServerHandlerFilters.cs +++ b/src/OpenIddict.Server/OpenIddictServerHandlerFilters.cs @@ -16,6 +16,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireAccessTokenGenerated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessSignInContext context) { if (context is null) @@ -32,6 +33,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireAccessTokenValidated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -48,6 +50,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireAuthorizationCodeGenerated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessSignInContext context) { if (context is null) @@ -64,6 +67,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireAuthorizationCodeValidated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -80,6 +84,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireAuthorizationIdResolved : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ValidateTokenContext context) { if (context is null) @@ -96,6 +101,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireAuthorizationRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -112,6 +118,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireAuthorizationStorageEnabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -128,6 +135,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireClientIdParameter : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -144,6 +152,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireConfigurationRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -160,6 +169,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireCryptographyRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -176,6 +186,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireDegradedModeDisabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -192,6 +203,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireDeviceCodeGenerated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessSignInContext context) { if (context is null) @@ -208,6 +220,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireDeviceCodeValidated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -224,6 +237,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireDeviceRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -240,6 +254,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireEndpointPermissionsEnabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -256,6 +271,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireGenericTokenValidated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -272,6 +288,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireGrantTypePermissionsEnabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -288,6 +305,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireIdentityTokenGenerated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessSignInContext context) { if (context is null) @@ -304,6 +322,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireIdentityTokenValidated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -320,6 +339,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireIntrospectionRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -336,6 +356,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireJsonWebTokenFormat : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(GenerateTokenContext context) { if (context is null) @@ -352,6 +373,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireLogoutRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -368,6 +390,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequirePostLogoutRedirectUriParameter : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -384,6 +407,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireReferenceAccessTokensEnabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -400,6 +424,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireReferenceRefreshTokensEnabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -416,6 +441,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireRefreshTokenGenerated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessSignInContext context) { if (context is null) @@ -432,6 +458,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireRefreshTokenValidated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -448,6 +475,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireResponseTypePermissionsEnabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -464,6 +492,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireRevocationRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -480,6 +509,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireScopePermissionsEnabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -496,6 +526,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireScopeValidationEnabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -512,6 +543,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireSlidingRefreshTokenExpirationEnabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -528,6 +560,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireTokenIdResolved : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ValidateTokenContext context) { if (context is null) @@ -544,6 +577,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireTokenEntryCreated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(GenerateTokenContext context) { if (context is null) @@ -560,6 +594,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireTokenLifetimeValidationEnabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ValidateTokenContext context) { if (context is null) @@ -576,6 +611,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireTokenPayloadPersisted : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(GenerateTokenContext context) { if (context is null) @@ -592,6 +628,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireTokenRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -608,6 +645,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireTokenStorageEnabled : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -624,6 +662,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireUserCodeGenerated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessSignInContext context) { if (context is null) @@ -640,6 +679,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireUserCodeValidated : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -656,6 +696,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireUserinfoRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -672,6 +713,7 @@ public static class OpenIddictServerHandlerFilters /// public sealed class RequireVerificationRequest : IOpenIddictServerHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) diff --git a/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreConfiguration.cs b/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreConfiguration.cs index 373801af..ba3fc4c7 100644 --- a/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreConfiguration.cs +++ b/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreConfiguration.cs @@ -17,10 +17,7 @@ public sealed class OpenIddictValidationAspNetCoreConfiguration : IConfigureOpti IConfigureOptions, IPostConfigureOptions { - /// - /// Registers the OpenIddict validation handler in the global authentication options. - /// - /// The options instance to initialize. + /// public void Configure(AuthenticationOptions options) { if (options is null) @@ -39,6 +36,7 @@ public sealed class OpenIddictValidationAspNetCoreConfiguration : IConfigureOpti OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme, displayName: null); } + /// public void Configure(OpenIddictValidationOptions options) { if (options is null) @@ -50,11 +48,7 @@ public sealed class OpenIddictValidationAspNetCoreConfiguration : IConfigureOpti options.Handlers.AddRange(OpenIddictValidationAspNetCoreHandlers.DefaultHandlers); } - /// - /// Ensures that the authentication configuration is in a consistent and valid state. - /// - /// The name of the options instance to configure, if applicable. - /// The options instance to initialize. + /// public void PostConfigure(string? name, AuthenticationOptions options) { if (options is null) diff --git a/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandlerFilters.cs b/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandlerFilters.cs index d95708ed..906d7c6e 100644 --- a/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandlerFilters.cs +++ b/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreHandlerFilters.cs @@ -20,6 +20,7 @@ public static class OpenIddictValidationAspNetCoreHandlerFilters /// public sealed class RequireHttpRequest : IOpenIddictValidationHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) diff --git a/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionConfiguration.cs b/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionConfiguration.cs index 878eebf7..09c28cdc 100644 --- a/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionConfiguration.cs +++ b/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionConfiguration.cs @@ -26,6 +26,7 @@ public sealed class OpenIddictValidationDataProtectionConfiguration : IConfigure public OpenIddictValidationDataProtectionConfiguration(IDataProtectionProvider dataProtectionProvider) => _dataProtectionProvider = dataProtectionProvider; + /// public void Configure(OpenIddictValidationOptions options) { if (options is null) @@ -37,12 +38,7 @@ public sealed class OpenIddictValidationDataProtectionConfiguration : IConfigure options.Handlers.AddRange(OpenIddictValidationDataProtectionHandlers.DefaultHandlers); } - /// - /// Populates the default OpenIddict ASP.NET Core Data Protection validation options - /// and ensures that the configuration is in a consistent and valid state. - /// - /// The name of the options instance to configure, if applicable. - /// The options instance to initialize. + /// public void PostConfigure(string? name, OpenIddictValidationDataProtectionOptions options) { if (options is null) diff --git a/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinConfiguration.cs b/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinConfiguration.cs index 28c72d7d..e2c7365a 100644 --- a/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinConfiguration.cs +++ b/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinConfiguration.cs @@ -15,6 +15,7 @@ namespace OpenIddict.Validation.Owin; [EditorBrowsable(EditorBrowsableState.Advanced)] public sealed class OpenIddictValidationOwinConfiguration : IConfigureOptions { + /// public void Configure(OpenIddictValidationOptions options) { if (options is null) diff --git a/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinHandlerFilters.cs b/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinHandlerFilters.cs index 700c3163..c1e89144 100644 --- a/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinHandlerFilters.cs +++ b/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinHandlerFilters.cs @@ -18,6 +18,7 @@ public static class OpenIddictValidationOwinHandlerFilters /// public sealed class RequireOwinRequest : IOpenIddictValidationHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) diff --git a/src/OpenIddict.Validation.ServerIntegration/OpenIddictValidationServerIntegrationConfiguration.cs b/src/OpenIddict.Validation.ServerIntegration/OpenIddictValidationServerIntegrationConfiguration.cs index d1a8bf0b..7f7c4139 100644 --- a/src/OpenIddict.Validation.ServerIntegration/OpenIddictValidationServerIntegrationConfiguration.cs +++ b/src/OpenIddict.Validation.ServerIntegration/OpenIddictValidationServerIntegrationConfiguration.cs @@ -26,11 +26,7 @@ public sealed class OpenIddictValidationServerIntegrationConfiguration : IConfig public OpenIddictValidationServerIntegrationConfiguration(IOptionsMonitor options) => _options = options ?? throw new ArgumentNullException(nameof(options)); - /// - /// Populates the default OpenIddict validation/server integration options - /// and ensures that the configuration is in a consistent and valid state. - /// - /// The options instance to initialize. + /// public void Configure(OpenIddictValidationOptions options) { if (options is null) @@ -58,12 +54,7 @@ public sealed class OpenIddictValidationServerIntegrationConfiguration : IConfig options.EnableTokenEntryValidation = _options.CurrentValue.UseReferenceAccessTokens; } - /// - /// Populates the default OpenIddict validation/server integration options - /// and ensures that the configuration is in a consistent and valid state. - /// - /// The name of the options instance to configure, if applicable. - /// The options instance to initialize. + /// public void PostConfigure(string? name, OpenIddictValidationOptions options) { if (options is null) diff --git a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpConfiguration.cs b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpConfiguration.cs index eb7360de..09428463 100644 --- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpConfiguration.cs +++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpConfiguration.cs @@ -20,11 +20,16 @@ public sealed class OpenIddictValidationSystemNetHttpConfiguration : IConfigureO { #if !SUPPORTS_SERVICE_PROVIDER_IN_HTTP_MESSAGE_HANDLER_BUILDER private readonly IServiceProvider _provider; - + + /// + /// Creates a new instance of the class. + /// + /// The service provider. public OpenIddictValidationSystemNetHttpConfiguration(IServiceProvider provider) => _provider = provider ?? throw new ArgumentNullException(nameof(provider)); #endif + /// public void Configure(OpenIddictValidationOptions options) { if (options is null) @@ -36,8 +41,10 @@ public sealed class OpenIddictValidationSystemNetHttpConfiguration : IConfigureO options.Handlers.AddRange(OpenIddictValidationSystemNetHttpHandlers.DefaultHandlers); } + /// public void Configure(HttpClientFactoryOptions options) => Configure(Options.DefaultName, options); + /// public void Configure(string? name, HttpClientFactoryOptions options) { if (options is null) diff --git a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlerFilters.cs b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlerFilters.cs index 29f11ec3..e7ded20d 100644 --- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlerFilters.cs +++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlerFilters.cs @@ -16,6 +16,7 @@ public static class OpenIddictValidationSystemNetHttpHandlerFilters /// public sealed class RequireHttpMetadataUri : IOpenIddictValidationHandlerFilter { + /// public ValueTask IsActiveAsync(BaseExternalContext context) { if (context is null) diff --git a/src/OpenIddict.Validation/IOpenIddictValidationDispatcher.cs b/src/OpenIddict.Validation/IOpenIddictValidationDispatcher.cs index f47226aa..694623bf 100644 --- a/src/OpenIddict.Validation/IOpenIddictValidationDispatcher.cs +++ b/src/OpenIddict.Validation/IOpenIddictValidationDispatcher.cs @@ -8,8 +8,20 @@ using System.ComponentModel; namespace OpenIddict.Validation; +/// +/// Represents a service able to dispatch events to a list of handlers. +/// [EditorBrowsable(EditorBrowsableState.Advanced)] public interface IOpenIddictValidationDispatcher { + /// + /// Dispatches an event of the specified type to the handlers that + /// implement . + /// + /// The type of the context associated with the event to dispatch. + /// The context associated with the event to dispatch. + /// + /// A that can be used to monitor the asynchronous operation. + /// ValueTask DispatchAsync(TContext context) where TContext : BaseContext; } diff --git a/src/OpenIddict.Validation/IOpenIddictValidationFactory.cs b/src/OpenIddict.Validation/IOpenIddictValidationFactory.cs index 8976364f..d88c5d26 100644 --- a/src/OpenIddict.Validation/IOpenIddictValidationFactory.cs +++ b/src/OpenIddict.Validation/IOpenIddictValidationFactory.cs @@ -8,8 +8,19 @@ using System.ComponentModel; namespace OpenIddict.Validation; +/// +/// Represents a service responsible for creating transactions. +/// [EditorBrowsable(EditorBrowsableState.Never)] public interface IOpenIddictValidationFactory { + /// + /// Creates a new that is used as a + /// way to store per-request data needed to process the requested operation. + /// + /// + /// A that can be used to monitor the asynchronous + /// operation, whose result returns the created transaction. + /// ValueTask CreateTransactionAsync(); } diff --git a/src/OpenIddict.Validation/IOpenIddictValidationHandlerFilter.cs b/src/OpenIddict.Validation/IOpenIddictValidationHandlerFilter.cs index e46cba00..19f3f0df 100644 --- a/src/OpenIddict.Validation/IOpenIddictValidationHandlerFilter.cs +++ b/src/OpenIddict.Validation/IOpenIddictValidationHandlerFilter.cs @@ -5,8 +5,21 @@ */ namespace OpenIddict.Validation; - +/// +/// Represents a handler filter responsible for determining whether a +/// handler should process an event depending on the specified context. +/// +/// The type of the context associated with events filtered by this instance. public interface IOpenIddictValidationHandlerFilter where TContext : BaseContext { + /// + /// Determines whether the handler referencing this filter instance should + /// be instantiated and process the event, based on the specified context. + /// + /// The context associated with the event to process. + /// + /// A that can be used to monitor the asynchronous operation, + /// whose boolean result determines whether the handler will be invoked or not. + /// ValueTask IsActiveAsync(TContext context); } diff --git a/src/OpenIddict.Validation/OpenIddictValidationConfiguration.cs b/src/OpenIddict.Validation/OpenIddictValidationConfiguration.cs index ebaa60ad..66575995 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationConfiguration.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationConfiguration.cs @@ -18,15 +18,14 @@ public sealed class OpenIddictValidationConfiguration : IPostConfigureOptions + /// Creates a new instance of the class. + /// + /// The validation service. public OpenIddictValidationConfiguration(OpenIddictValidationService service) => _service = service ?? throw new ArgumentNullException(nameof(service)); - /// - /// Populates the default OpenIddict validation options and ensures - /// that the configuration is in a consistent and valid state. - /// - /// The name of the options instance to configure, if applicable. - /// The options instance to initialize. + /// public void PostConfigure(string? name, OpenIddictValidationOptions options) { if (options is null) diff --git a/src/OpenIddict.Validation/OpenIddictValidationDispatcher.cs b/src/OpenIddict.Validation/OpenIddictValidationDispatcher.cs index b1fd7963..be57f51c 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationDispatcher.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationDispatcher.cs @@ -10,6 +10,9 @@ using Microsoft.Extensions.Options; namespace OpenIddict.Validation; +/// +/// Represents a service able to dispatch events to a list of handlers. +/// [EditorBrowsable(EditorBrowsableState.Advanced)] public sealed class OpenIddictValidationDispatcher : IOpenIddictValidationDispatcher { @@ -30,6 +33,7 @@ public sealed class OpenIddictValidationDispatcher : IOpenIddictValidationDispat _provider = provider ?? throw new ArgumentNullException(nameof(provider)); } + /// public async ValueTask DispatchAsync(TContext context) where TContext : BaseContext { if (context is null) diff --git a/src/OpenIddict.Validation/OpenIddictValidationFactory.cs b/src/OpenIddict.Validation/OpenIddictValidationFactory.cs index 03ac8102..85e836c9 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationFactory.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationFactory.cs @@ -10,6 +10,9 @@ using Microsoft.Extensions.Options; namespace OpenIddict.Validation; +/// +/// Represents a service responsible for creating transactions. +/// [EditorBrowsable(EditorBrowsableState.Never)] public sealed class OpenIddictValidationFactory : IOpenIddictValidationFactory { @@ -27,6 +30,7 @@ public sealed class OpenIddictValidationFactory : IOpenIddictValidationFactory _options = options ?? throw new ArgumentNullException(nameof(options)); } + /// public ValueTask CreateTransactionAsync() => new(new OpenIddictValidationTransaction { diff --git a/src/OpenIddict.Validation/OpenIddictValidationHandlerFilters.cs b/src/OpenIddict.Validation/OpenIddictValidationHandlerFilters.cs index 6ab2580c..726a6dae 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationHandlerFilters.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationHandlerFilters.cs @@ -16,6 +16,7 @@ public static class OpenIddictValidationHandlerFilters /// public sealed class RequireAccessTokenExtracted : IOpenIddictValidationHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -32,6 +33,7 @@ public static class OpenIddictValidationHandlerFilters /// public sealed class RequireAccessTokenValidated : IOpenIddictValidationHandlerFilter { + /// public ValueTask IsActiveAsync(ProcessAuthenticationContext context) { if (context is null) @@ -48,6 +50,7 @@ public static class OpenIddictValidationHandlerFilters /// public sealed class RequireAuthorizationEntryValidationEnabled : IOpenIddictValidationHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -64,6 +67,7 @@ public static class OpenIddictValidationHandlerFilters /// public sealed class RequireAuthorizationIdResolved : IOpenIddictValidationHandlerFilter { + /// public ValueTask IsActiveAsync(ValidateTokenContext context) { if (context is null) @@ -80,6 +84,7 @@ public static class OpenIddictValidationHandlerFilters /// public sealed class RequireLocalValidation : IOpenIddictValidationHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -96,6 +101,7 @@ public static class OpenIddictValidationHandlerFilters /// public sealed class RequireIntrospectionValidation : IOpenIddictValidationHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null) @@ -112,6 +118,7 @@ public static class OpenIddictValidationHandlerFilters /// public sealed class RequireTokenIdResolved : IOpenIddictValidationHandlerFilter { + /// public ValueTask IsActiveAsync(ValidateTokenContext context) { if (context is null) @@ -128,6 +135,7 @@ public static class OpenIddictValidationHandlerFilters /// public sealed class RequireTokenEntryValidationEnabled : IOpenIddictValidationHandlerFilter { + /// public ValueTask IsActiveAsync(BaseContext context) { if (context is null)