diff --git a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpExtensions.cs b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpExtensions.cs index 5fd499fe..ca953fd9 100644 --- a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpExtensions.cs +++ b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpExtensions.cs @@ -37,7 +37,10 @@ public static class OpenIddictClientSystemNetHttpExtensions builder.Services.TryAdd(OpenIddictClientSystemNetHttpHandlers.DefaultHandlers.Select(descriptor => descriptor.ServiceDescriptor)); // Register the built-in filters used by the default OpenIddict System.Net.Http event handlers. +#pragma warning disable CS0618 builder.Services.TryAddSingleton(); +#pragma warning restore CS0618 + builder.Services.TryAddSingleton(); // Note: TryAddEnumerable() is used here to ensure the initializers are registered only once. builder.Services.TryAddEnumerable( diff --git a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlerFilters.cs b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlerFilters.cs index 1dc74db3..e5800001 100644 --- a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlerFilters.cs +++ b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlerFilters.cs @@ -12,8 +12,9 @@ namespace OpenIddict.Client.SystemNetHttp; public static class OpenIddictClientSystemNetHttpHandlerFilters { /// - /// Represents a filter that excludes the associated handlers if the metadata URI of the issuer is not available. + /// Represents a filter that excludes the associated handlers if the URI is not an HTTP or HTTPS address. /// + [Obsolete("This filter is obsolete and will be removed in a future version.")] public sealed class RequireHttpMetadataUri : IOpenIddictClientHandlerFilter { /// @@ -25,7 +26,26 @@ public static class OpenIddictClientSystemNetHttpHandlerFilters } return new( - string.Equals(context.RemoteUri?.Scheme, Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) || + string.Equals(context.RemoteUri?.Scheme, Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) || + string.Equals(context.RemoteUri?.Scheme, Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase)); + } + } + + /// + /// Represents a filter that excludes the associated handlers if the URI is not an HTTP or HTTPS address. + /// + public sealed class RequireHttpUri : IOpenIddictClientHandlerFilter + { + /// + public ValueTask IsActiveAsync(BaseExternalContext context) + { + if (context is null) + { + throw new ArgumentNullException(nameof(context)); + } + + return new( + string.Equals(context.RemoteUri?.Scheme, Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) || string.Equals(context.RemoteUri?.Scheme, Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase)); } } diff --git a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Device.cs b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Device.cs index 5e84a711..b0ef42f7 100644 --- a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Device.cs +++ b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Device.cs @@ -51,7 +51,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachHttpParameters.Descriptor.Order - 500) .SetType(OpenIddictClientHandlerType.BuiltIn) diff --git a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Exchange.cs b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Exchange.cs index 1c3465d0..11f54ce5 100644 --- a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Exchange.cs +++ b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Exchange.cs @@ -51,7 +51,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachHttpParameters.Descriptor.Order - 500) .SetType(OpenIddictClientHandlerType.BuiltIn) diff --git a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Introspection.cs b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Introspection.cs index 34e8fd74..fd4a390d 100644 --- a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Introspection.cs +++ b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Introspection.cs @@ -51,7 +51,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachHttpParameters.Descriptor.Order - 500) .SetType(OpenIddictClientHandlerType.BuiltIn) diff --git a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Revocation.cs b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Revocation.cs index 977c9c08..d8fa2dc2 100644 --- a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Revocation.cs +++ b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Revocation.cs @@ -52,7 +52,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachHttpParameters.Descriptor.Order - 500) .SetType(OpenIddictClientHandlerType.BuiltIn) diff --git a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Userinfo.cs b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Userinfo.cs index 86ca4ac6..b328a777 100644 --- a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Userinfo.cs +++ b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.Userinfo.cs @@ -52,7 +52,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachHttpParameters.Descriptor.Order - 500) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -93,7 +93,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(ExtractJsonHttpResponse.Descriptor.Order - 500) .SetType(OpenIddictClientHandlerType.BuiltIn) diff --git a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.cs b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.cs index 57471db9..8e6a3d7a 100644 --- a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.cs +++ b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpHandlers.cs @@ -46,7 +46,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(int.MinValue + 100_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -81,7 +81,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(CreateHttpClient.Descriptor.Order + 1_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -113,7 +113,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(PrepareGetHttpRequest.Descriptor.Order + 1_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -145,7 +145,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(PreparePostHttpRequest.Descriptor.Order + 1_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -193,7 +193,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(AttachHttpVersion.Descriptor.Order + 1_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -238,7 +238,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(AttachJsonAcceptHeaders.Descriptor.Order + 1_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -292,7 +292,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(AttachUserAgentHeader.Descriptor.Order + 1_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -328,7 +328,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(int.MaxValue - 100_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -388,7 +388,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(DecompressResponseContent.Descriptor.Order - 1_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -452,7 +452,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(int.MaxValue - 100_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -490,7 +490,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(ExtractJsonHttpResponse.Descriptor.Order - 1_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -636,7 +636,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(ExtractWwwAuthenticateHeader.Descriptor.Order - 1_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -715,7 +715,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(ExtractEmptyHttpResponse.Descriptor.Order - 1_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -798,7 +798,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(ValidateHttpResponse.Descriptor.Order - 1_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -844,7 +844,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(DisposeHttpResponse.Descriptor.Order - 50_000) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -914,7 +914,7 @@ public static partial class OpenIddictClientSystemNetHttpHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(int.MaxValue - 100_000) .SetType(OpenIddictClientHandlerType.BuiltIn) diff --git a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Exchange.cs b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Exchange.cs index ea469cb7..73e36441 100644 --- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Exchange.cs +++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Exchange.cs @@ -129,7 +129,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachBasicAuthenticationCredentials.Descriptor.Order - 500) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -232,7 +232,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachUserAgentHeader.Descriptor.Order + 250) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -276,7 +276,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachHttpParameters.Descriptor.Order + 500) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -323,7 +323,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachHttpParameters.Descriptor.Order + 500) .SetType(OpenIddictClientHandlerType.BuiltIn) diff --git a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Revocation.cs b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Revocation.cs index 4489eb62..3d22205f 100644 --- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Revocation.cs +++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Revocation.cs @@ -43,7 +43,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachBasicAuthenticationCredentials.Descriptor.Order - 500) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -106,6 +106,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() + .AddFilter() .UseSingletonHandler() .SetOrder(ExtractJsonHttpResponse.Descriptor.Order - 500) .SetType(OpenIddictClientHandlerType.BuiltIn) diff --git a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs index f599a7b2..ddc67116 100644 --- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs +++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs @@ -49,7 +49,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(PreparePostHttpRequest.Descriptor.Order + 250) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -96,7 +96,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachUserAgentHeader.Descriptor.Order + 250) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -151,7 +151,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachBearerAccessToken.Descriptor.Order + 250) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -250,7 +250,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachHttpParameters.Descriptor.Order + 500) .SetType(OpenIddictClientHandlerType.BuiltIn) @@ -299,6 +299,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers /// public static OpenIddictClientHandlerDescriptor Descriptor { get; } = OpenIddictClientHandlerDescriptor.CreateBuilder() + .AddFilter() .UseSingletonHandler() .SetOrder(ExtractUserinfoTokenHttpResponse.Descriptor.Order - 250) .SetType(OpenIddictClientHandlerType.BuiltIn) diff --git a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpExtensions.cs b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpExtensions.cs index 73502293..cc1e2411 100644 --- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpExtensions.cs +++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpExtensions.cs @@ -37,7 +37,10 @@ public static class OpenIddictValidationSystemNetHttpExtensions builder.Services.TryAdd(OpenIddictValidationSystemNetHttpHandlers.DefaultHandlers.Select(descriptor => descriptor.ServiceDescriptor)); // Register the built-in filters used by the default OpenIddict System.Net.Http event handlers. +#pragma warning disable CS0618 builder.Services.TryAddSingleton(); +#pragma warning restore CS0618 + builder.Services.TryAddSingleton(); // Note: TryAddEnumerable() is used here to ensure the initializers are registered only once. builder.Services.TryAddEnumerable( diff --git a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlerFilters.cs b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlerFilters.cs index e7ded20d..f7760ef3 100644 --- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlerFilters.cs +++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlerFilters.cs @@ -12,8 +12,9 @@ namespace OpenIddict.Validation.SystemNetHttp; public static class OpenIddictValidationSystemNetHttpHandlerFilters { /// - /// Represents a filter that excludes the associated handlers if the metadata URI of the issuer is not available. + /// Represents a filter that excludes the associated handlers if the URI is not an HTTP or HTTPS address. /// + [Obsolete("This filter is obsolete and will be removed in a future version.")] public sealed class RequireHttpMetadataUri : IOpenIddictValidationHandlerFilter { /// @@ -25,7 +26,26 @@ public static class OpenIddictValidationSystemNetHttpHandlerFilters } return new( - string.Equals(context.RemoteUri?.Scheme, Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) || + string.Equals(context.RemoteUri?.Scheme, Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) || + string.Equals(context.RemoteUri?.Scheme, Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase)); + } + } + + /// + /// Represents a filter that excludes the associated handlers if the URI is not an HTTP or HTTPS address. + /// + public sealed class RequireHttpUri : IOpenIddictValidationHandlerFilter + { + /// + public ValueTask IsActiveAsync(BaseExternalContext context) + { + if (context is null) + { + throw new ArgumentNullException(nameof(context)); + } + + return new( + string.Equals(context.RemoteUri?.Scheme, Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) || string.Equals(context.RemoteUri?.Scheme, Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase)); } } diff --git a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.Introspection.cs b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.Introspection.cs index 14ecf0d8..f9921175 100644 --- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.Introspection.cs +++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.Introspection.cs @@ -51,7 +51,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler() .SetOrder(AttachHttpParameters.Descriptor.Order - 500) .SetType(OpenIddictValidationHandlerType.BuiltIn) diff --git a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.cs b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.cs index 06bd8f7f..6dc3e39b 100644 --- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.cs +++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.cs @@ -40,7 +40,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(int.MinValue + 100_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -74,7 +74,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(CreateHttpClient.Descriptor.Order + 1_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -106,7 +106,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(PrepareGetHttpRequest.Descriptor.Order + 1_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -138,7 +138,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(PreparePostHttpRequest.Descriptor.Order + 1_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -186,7 +186,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(AttachHttpVersion.Descriptor.Order + 1_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -231,7 +231,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(AttachJsonAcceptHeaders.Descriptor.Order + 1_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -287,7 +287,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(AttachUserAgentHeader.Descriptor.Order + 1_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -323,7 +323,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(int.MaxValue - 100_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -383,7 +383,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(DisposeHttpRequest.Descriptor.Order - 50_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -447,7 +447,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(int.MaxValue - 100_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -485,7 +485,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(ExtractJsonHttpResponse.Descriptor.Order - 1_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -631,7 +631,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(ExtractWwwAuthenticateHeader.Descriptor.Order - 1_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -710,7 +710,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(ValidateHttpResponse.Descriptor.Order - 1_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -793,7 +793,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(DisposeHttpResponse.Descriptor.Order - 50_000) .SetType(OpenIddictValidationHandlerType.BuiltIn) @@ -863,7 +863,7 @@ public static partial class OpenIddictValidationSystemNetHttpHandlers /// public static OpenIddictValidationHandlerDescriptor Descriptor { get; } = OpenIddictValidationHandlerDescriptor.CreateBuilder() - .AddFilter() + .AddFilter() .UseSingletonHandler>() .SetOrder(int.MaxValue - 100_000) .SetType(OpenIddictValidationHandlerType.BuiltIn)