()
.SetOrder(AttachBasicAuthenticationCredentials.Descriptor.Order - 500)
.SetType(OpenIddictClientHandlerType.BuiltIn)
@@ -232,7 +232,7 @@ public sealed class AttachNonStandardRequestHeaders : IOpenIddictClientHandler
public static OpenIddictClientHandlerDescriptor Descriptor { get; }
= OpenIddictClientHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler()
.SetOrder(AttachUserAgentHeader.Descriptor.Order + 250)
.SetType(OpenIddictClientHandlerType.BuiltIn)
@@ -276,7 +276,7 @@ public sealed class AttachNonStandardQueryStringParameters : IOpenIddictClientHa
///
public static OpenIddictClientHandlerDescriptor Descriptor { get; }
= OpenIddictClientHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler()
.SetOrder(AttachHttpParameters.Descriptor.Order + 500)
.SetType(OpenIddictClientHandlerType.BuiltIn)
@@ -323,7 +323,7 @@ public sealed class AttachNonStandardRequestPayload : IOpenIddictClientHandler
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 4489eb623..3d22205f8 100644
--- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Revocation.cs
+++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Revocation.cs
@@ -43,7 +43,7 @@ public sealed class AttachNonStandardBasicAuthenticationCredentials : IOpenIddic
///
public static OpenIddictClientHandlerDescriptor Descriptor { get; }
= OpenIddictClientHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler()
.SetOrder(AttachBasicAuthenticationCredentials.Descriptor.Order - 500)
.SetType(OpenIddictClientHandlerType.BuiltIn)
@@ -106,6 +106,7 @@ public sealed class NormalizeContentType : IOpenIddictClientHandler
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 f599a7b2b..ddc67116c 100644
--- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs
+++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs
@@ -49,7 +49,7 @@ public sealed class OverrideHttpMethod : IOpenIddictClientHandler
public static OpenIddictClientHandlerDescriptor Descriptor { get; }
= OpenIddictClientHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler()
.SetOrder(PreparePostHttpRequest.Descriptor.Order + 250)
.SetType(OpenIddictClientHandlerType.BuiltIn)
@@ -96,7 +96,7 @@ public sealed class AttachRequestHeaders : IOpenIddictClientHandler
public static OpenIddictClientHandlerDescriptor Descriptor { get; }
= OpenIddictClientHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler()
.SetOrder(AttachUserAgentHeader.Descriptor.Order + 250)
.SetType(OpenIddictClientHandlerType.BuiltIn)
@@ -151,7 +151,7 @@ public sealed class AttachAccessTokenParameter : IOpenIddictClientHandler
public static OpenIddictClientHandlerDescriptor Descriptor { get; }
= OpenIddictClientHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler()
.SetOrder(AttachBearerAccessToken.Descriptor.Order + 250)
.SetType(OpenIddictClientHandlerType.BuiltIn)
@@ -250,7 +250,7 @@ public sealed class AttachNonStandardRequestPayload : IOpenIddictClientHandler
public static OpenIddictClientHandlerDescriptor Descriptor { get; }
= OpenIddictClientHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler()
.SetOrder(AttachHttpParameters.Descriptor.Order + 500)
.SetType(OpenIddictClientHandlerType.BuiltIn)
@@ -299,6 +299,7 @@ public sealed class NormalizeContentType : IOpenIddictClientHandler
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 73502293f..cc1e2411f 100644
--- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpExtensions.cs
+++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpExtensions.cs
@@ -37,7 +37,10 @@ public static OpenIddictValidationSystemNetHttpBuilder UseSystemNetHttp(this Ope
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 e7ded20d4..f7760ef33 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 ValueTask IsActiveAsync(BaseExternalContext context)
}
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 14ecf0d85..f99211759 100644
--- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.Introspection.cs
+++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.Introspection.cs
@@ -51,7 +51,7 @@ public sealed class AttachBasicAuthenticationCredentials : IOpenIddictValidation
///
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 06bd8f7f0..6dc3e39b2 100644
--- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.cs
+++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpHandlers.cs
@@ -40,7 +40,7 @@ public CreateHttpClient(IHttpClientFactory factory)
///
public static OpenIddictValidationHandlerDescriptor Descriptor { get; }
= OpenIddictValidationHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler>()
.SetOrder(int.MinValue + 100_000)
.SetType(OpenIddictValidationHandlerType.BuiltIn)
@@ -74,7 +74,7 @@ public sealed class PrepareGetHttpRequest : IOpenIddictValidationHandl
///
public static OpenIddictValidationHandlerDescriptor Descriptor { get; }
= OpenIddictValidationHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler>()
.SetOrder(CreateHttpClient.Descriptor.Order + 1_000)
.SetType(OpenIddictValidationHandlerType.BuiltIn)
@@ -106,7 +106,7 @@ public sealed class PreparePostHttpRequest : IOpenIddictValidationHand
///
public static OpenIddictValidationHandlerDescriptor Descriptor { get; }
= OpenIddictValidationHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler>()
.SetOrder(PrepareGetHttpRequest.Descriptor.Order + 1_000)
.SetType(OpenIddictValidationHandlerType.BuiltIn)
@@ -138,7 +138,7 @@ public sealed class AttachHttpVersion : IOpenIddictValidationHandler
public static OpenIddictValidationHandlerDescriptor Descriptor { get; }
= OpenIddictValidationHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler>()
.SetOrder(PreparePostHttpRequest.Descriptor.Order + 1_000)
.SetType(OpenIddictValidationHandlerType.BuiltIn)
@@ -186,7 +186,7 @@ public sealed class AttachJsonAcceptHeaders : IOpenIddictValidationHan
///
public static OpenIddictValidationHandlerDescriptor Descriptor { get; }
= OpenIddictValidationHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler>()
.SetOrder(AttachHttpVersion.Descriptor.Order + 1_000)
.SetType(OpenIddictValidationHandlerType.BuiltIn)
@@ -231,7 +231,7 @@ public AttachUserAgentHeader(IOptionsMonitor
public static OpenIddictValidationHandlerDescriptor Descriptor { get; }
= OpenIddictValidationHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler>()
.SetOrder(AttachJsonAcceptHeaders.Descriptor.Order + 1_000)
.SetType(OpenIddictValidationHandlerType.BuiltIn)
@@ -287,7 +287,7 @@ public AttachFromHeader(IOptionsMonitor
public static OpenIddictValidationHandlerDescriptor Descriptor { get; }
= OpenIddictValidationHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler>()
.SetOrder(AttachUserAgentHeader.Descriptor.Order + 1_000)
.SetType(OpenIddictValidationHandlerType.BuiltIn)
@@ -323,7 +323,7 @@ public sealed class AttachHttpParameters : IOpenIddictValidationHandle
///
public static OpenIddictValidationHandlerDescriptor Descriptor { get; }
= OpenIddictValidationHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter()
.UseSingletonHandler>()
.SetOrder(int.MaxValue - 100_000)
.SetType(OpenIddictValidationHandlerType.BuiltIn)
@@ -383,7 +383,7 @@ public sealed class SendHttpRequest : IOpenIddictValidationHandler
public static OpenIddictValidationHandlerDescriptor Descriptor { get; }
= OpenIddictValidationHandlerDescriptor.CreateBuilder()
- .AddFilter()
+ .AddFilter