From 4dd46d827db067fef5dbbf30f7db703a8d06b370 Mon Sep 17 00:00:00 2001 From: sfgserr Date: Mon, 1 Jun 2026 10:13:40 +0300 Subject: [PATCH] Introduced ValidateOnStart method in all builders --- .vscode/launch.json | 35 ++++++++++++++++ .vscode/tasks.json | 41 +++++++++++++++++++ .../OpenIddictClientAspNetCoreBuilder.cs | 7 ++++ .../OpenIddictClientDataProtectionBuilder.cs | 7 ++++ .../OpenIddictClientOwinBuilder.cs | 11 +++++ ...penIddictClientSystemIntegrationBuilder.cs | 7 ++++ .../OpenIddictClientSystemNetHttpBuilder.cs | 7 ++++ .../OpenIddictClientWebIntegrationBuilder.cs | 7 ++++ .../OpenIddictClientBuilder.cs | 7 ++++ src/OpenIddict.Core/OpenIddictCoreBuilder.cs | 7 ++++ .../OpenIddictEntityFrameworkBuilder.cs | 7 ++++ .../OpenIddictEntityFrameworkCoreBuilder.cs | 7 ++++ .../OpenIddictMongoDbBuilder.cs | 7 ++++ .../OpenIddictQuartzBuilder.cs | 7 ++++ .../OpenIddictServerAspNetCoreBuilder.cs | 7 ++++ .../OpenIddictServerDataProtectionBuilder.cs | 7 ++++ .../OpenIddictServerOwinBuilder.cs | 9 +++- .../OpenIddictServerBuilder.cs | 7 ++++ .../OpenIddictValidationAspNetCoreBuilder.cs | 7 ++++ ...enIddictValidationDataProtectionBuilder.cs | 7 ++++ .../OpenIddictValidationOwinBuilder.cs | 7 ++++ ...ddictValidationServerIntegrationBuilder.cs | 7 ++++ ...penIddictValidationSystemNetHttpBuilder.cs | 7 ++++ .../OpenIddictValidationBuilder.cs | 7 ++++ 24 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 .vscode/launch.json create mode 100644 .vscode/tasks.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..446ff6b2 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md. + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/artifacts/bin/OpenIddict.Sandbox.AspNetCore.Server/Debug/net10.0/OpenIddict.Sandbox.AspNetCore.Server.dll", + "args": [], + "cwd": "${workspaceFolder}/sandbox/OpenIddict.Sandbox.AspNetCore.Server", + "stopAtEntry": false, + // Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser + "serverReadyAction": { + "action": "openExternally", + "pattern": "\\bNow listening on:\\s+(https?://\\S+)" + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "${workspaceFolder}/Views" + } + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 00000000..41f55406 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,41 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/sandbox/OpenIddict.Sandbox.AspNetCore.Server/OpenIddict.Sandbox.AspNetCore.Server.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/sandbox/OpenIddict.Sandbox.AspNetCore.Server/OpenIddict.Sandbox.AspNetCore.Server.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/sandbox/OpenIddict.Sandbox.AspNetCore.Server/OpenIddict.Sandbox.AspNetCore.Server.csproj" + ], + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreBuilder.cs b/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreBuilder.cs index 1aa96570..a74e2d36 100644 --- a/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreBuilder.cs +++ b/src/OpenIddict.Client.AspNetCore/OpenIddictClientAspNetCoreBuilder.cs @@ -30,6 +30,13 @@ public sealed class OpenIddictClientAspNetCoreBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictClientAspNetCoreBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict client ASP.NET Core configuration. /// diff --git a/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionBuilder.cs b/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionBuilder.cs index aaef1ed1..129afc40 100644 --- a/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionBuilder.cs +++ b/src/OpenIddict.Client.DataProtection/OpenIddictClientDataProtectionBuilder.cs @@ -29,6 +29,13 @@ public sealed class OpenIddictClientDataProtectionBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictClientDataProtectionBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict client ASP.NET Core Data Protection configuration. /// diff --git a/src/OpenIddict.Client.Owin/OpenIddictClientOwinBuilder.cs b/src/OpenIddict.Client.Owin/OpenIddictClientOwinBuilder.cs index 5f64eec8..a95665b9 100644 --- a/src/OpenIddict.Client.Owin/OpenIddictClientOwinBuilder.cs +++ b/src/OpenIddict.Client.Owin/OpenIddictClientOwinBuilder.cs @@ -4,7 +4,11 @@ * the license and the contributors participating to this project. */ +using System; using System.ComponentModel; +using Microsoft.Owin; +using Microsoft.Owin.Infrastructure; +using Microsoft.Owin.Security; using OpenIddict.Client; using OpenIddict.Client.Owin; using Owin; @@ -30,6 +34,13 @@ public sealed class OpenIddictClientOwinBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictClientOwinBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict client OWIN/Katana configuration. /// diff --git a/src/OpenIddict.Client.SystemIntegration/OpenIddictClientSystemIntegrationBuilder.cs b/src/OpenIddict.Client.SystemIntegration/OpenIddictClientSystemIntegrationBuilder.cs index 948c59b4..7407dea2 100644 --- a/src/OpenIddict.Client.SystemIntegration/OpenIddictClientSystemIntegrationBuilder.cs +++ b/src/OpenIddict.Client.SystemIntegration/OpenIddictClientSystemIntegrationBuilder.cs @@ -32,6 +32,13 @@ public sealed class OpenIddictClientSystemIntegrationBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictClientSystemIntegrationBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict client system integration configuration. /// diff --git a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpBuilder.cs b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpBuilder.cs index c4f26151..8cd7d937 100644 --- a/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpBuilder.cs +++ b/src/OpenIddict.Client.SystemNetHttp/OpenIddictClientSystemNetHttpBuilder.cs @@ -33,6 +33,13 @@ public sealed class OpenIddictClientSystemNetHttpBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictClientSystemNetHttpBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict client/System.Net.Http configuration. /// diff --git a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationBuilder.cs b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationBuilder.cs index 406fd217..c0f46228 100644 --- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationBuilder.cs +++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationBuilder.cs @@ -27,6 +27,13 @@ public sealed partial class OpenIddictClientWebIntegrationBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictClientWebIntegrationBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict client Web integration configuration. /// diff --git a/src/OpenIddict.Client/OpenIddictClientBuilder.cs b/src/OpenIddict.Client/OpenIddictClientBuilder.cs index cf4f3a83..0365ec76 100644 --- a/src/OpenIddict.Client/OpenIddictClientBuilder.cs +++ b/src/OpenIddict.Client/OpenIddictClientBuilder.cs @@ -34,6 +34,13 @@ public sealed class OpenIddictClientBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictClientBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Registers an event handler using the specified configuration delegate. /// diff --git a/src/OpenIddict.Core/OpenIddictCoreBuilder.cs b/src/OpenIddict.Core/OpenIddictCoreBuilder.cs index 191727cc..197c4147 100644 --- a/src/OpenIddict.Core/OpenIddictCoreBuilder.cs +++ b/src/OpenIddict.Core/OpenIddictCoreBuilder.cs @@ -30,6 +30,13 @@ public sealed class OpenIddictCoreBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictCoreBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict core configuration. /// diff --git a/src/OpenIddict.EntityFramework/OpenIddictEntityFrameworkBuilder.cs b/src/OpenIddict.EntityFramework/OpenIddictEntityFrameworkBuilder.cs index 193c44aa..de1c93b1 100644 --- a/src/OpenIddict.EntityFramework/OpenIddictEntityFrameworkBuilder.cs +++ b/src/OpenIddict.EntityFramework/OpenIddictEntityFrameworkBuilder.cs @@ -31,6 +31,13 @@ public sealed class OpenIddictEntityFrameworkBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictEntityFrameworkBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict Entity Framework 6.x configuration. /// diff --git a/src/OpenIddict.EntityFrameworkCore/OpenIddictEntityFrameworkCoreBuilder.cs b/src/OpenIddict.EntityFrameworkCore/OpenIddictEntityFrameworkCoreBuilder.cs index 3beeb0f3..6da644d8 100644 --- a/src/OpenIddict.EntityFrameworkCore/OpenIddictEntityFrameworkCoreBuilder.cs +++ b/src/OpenIddict.EntityFrameworkCore/OpenIddictEntityFrameworkCoreBuilder.cs @@ -31,6 +31,13 @@ public sealed class OpenIddictEntityFrameworkCoreBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictEntityFrameworkCoreBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict Entity Framework Core configuration. /// diff --git a/src/OpenIddict.MongoDb/OpenIddictMongoDbBuilder.cs b/src/OpenIddict.MongoDb/OpenIddictMongoDbBuilder.cs index 9896be74..3e3946da 100644 --- a/src/OpenIddict.MongoDb/OpenIddictMongoDbBuilder.cs +++ b/src/OpenIddict.MongoDb/OpenIddictMongoDbBuilder.cs @@ -31,6 +31,13 @@ public sealed class OpenIddictMongoDbBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictMongoDbBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict MongoDB configuration. /// diff --git a/src/OpenIddict.Quartz/OpenIddictQuartzBuilder.cs b/src/OpenIddict.Quartz/OpenIddictQuartzBuilder.cs index 3a57d795..a51a0935 100644 --- a/src/OpenIddict.Quartz/OpenIddictQuartzBuilder.cs +++ b/src/OpenIddict.Quartz/OpenIddictQuartzBuilder.cs @@ -27,6 +27,13 @@ public sealed class OpenIddictQuartzBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictQuartzBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict Quartz.NET configuration. /// diff --git a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreBuilder.cs b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreBuilder.cs index f5554df1..34b9825b 100644 --- a/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreBuilder.cs +++ b/src/OpenIddict.Server.AspNetCore/OpenIddictServerAspNetCoreBuilder.cs @@ -29,6 +29,13 @@ public sealed class OpenIddictServerAspNetCoreBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictServerAspNetCoreBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict server ASP.NET Core configuration. /// diff --git a/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionBuilder.cs b/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionBuilder.cs index 2d75eed1..8dec5c07 100644 --- a/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionBuilder.cs +++ b/src/OpenIddict.Server.DataProtection/OpenIddictServerDataProtectionBuilder.cs @@ -29,6 +29,13 @@ public sealed class OpenIddictServerDataProtectionBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictServerDataProtectionBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict server ASP.NET Core Data Protection configuration. /// diff --git a/src/OpenIddict.Server.Owin/OpenIddictServerOwinBuilder.cs b/src/OpenIddict.Server.Owin/OpenIddictServerOwinBuilder.cs index 8b36a12b..a5a13962 100644 --- a/src/OpenIddict.Server.Owin/OpenIddictServerOwinBuilder.cs +++ b/src/OpenIddict.Server.Owin/OpenIddictServerOwinBuilder.cs @@ -29,7 +29,14 @@ public sealed class OpenIddictServerOwinBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } - /// + public OpenIddictServerOwinBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + + /// /// Amends the default OpenIddict server OWIN/Katana configuration. /// /// The delegate used to configure the OpenIddict options. diff --git a/src/OpenIddict.Server/OpenIddictServerBuilder.cs b/src/OpenIddict.Server/OpenIddictServerBuilder.cs index d2993c35..48b6198f 100644 --- a/src/OpenIddict.Server/OpenIddictServerBuilder.cs +++ b/src/OpenIddict.Server/OpenIddictServerBuilder.cs @@ -34,6 +34,13 @@ public sealed class OpenIddictServerBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictServerBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Registers an event handler using the specified configuration delegate. /// diff --git a/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreBuilder.cs b/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreBuilder.cs index b895089d..2a250c2b 100644 --- a/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreBuilder.cs +++ b/src/OpenIddict.Validation.AspNetCore/OpenIddictValidationAspNetCoreBuilder.cs @@ -28,6 +28,13 @@ public sealed class OpenIddictValidationAspNetCoreBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictValidationAspNetCoreBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict validation ASP.NET Core configuration. /// diff --git a/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionBuilder.cs b/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionBuilder.cs index 71736478..93a34805 100644 --- a/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionBuilder.cs +++ b/src/OpenIddict.Validation.DataProtection/OpenIddictValidationDataProtectionBuilder.cs @@ -29,6 +29,13 @@ public sealed class OpenIddictValidationDataProtectionBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictValidationDataProtectionBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict validation ASP.NET Core Data Protection configuration. /// diff --git a/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinBuilder.cs b/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinBuilder.cs index e9adf4cb..d39010c6 100644 --- a/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinBuilder.cs +++ b/src/OpenIddict.Validation.Owin/OpenIddictValidationOwinBuilder.cs @@ -28,6 +28,13 @@ public sealed class OpenIddictValidationOwinBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictValidationOwinBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict validation OWIN/Katana configuration. /// diff --git a/src/OpenIddict.Validation.ServerIntegration/OpenIddictValidationServerIntegrationBuilder.cs b/src/OpenIddict.Validation.ServerIntegration/OpenIddictValidationServerIntegrationBuilder.cs index 2e397a53..f8c88db2 100644 --- a/src/OpenIddict.Validation.ServerIntegration/OpenIddictValidationServerIntegrationBuilder.cs +++ b/src/OpenIddict.Validation.ServerIntegration/OpenIddictValidationServerIntegrationBuilder.cs @@ -27,6 +27,13 @@ public sealed class OpenIddictValidationServerIntegrationBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictValidationServerIntegrationBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict validation/server integration configuration. /// diff --git a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpBuilder.cs b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpBuilder.cs index 548342da..49102da0 100644 --- a/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpBuilder.cs +++ b/src/OpenIddict.Validation.SystemNetHttp/OpenIddictValidationSystemNetHttpBuilder.cs @@ -32,6 +32,13 @@ public sealed class OpenIddictValidationSystemNetHttpBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictValidationSystemNetHttpBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Amends the default OpenIddict validation/System.Net.Http configuration. /// diff --git a/src/OpenIddict.Validation/OpenIddictValidationBuilder.cs b/src/OpenIddict.Validation/OpenIddictValidationBuilder.cs index a81aa907..8cc19265 100644 --- a/src/OpenIddict.Validation/OpenIddictValidationBuilder.cs +++ b/src/OpenIddict.Validation/OpenIddictValidationBuilder.cs @@ -33,6 +33,13 @@ public sealed class OpenIddictValidationBuilder [EditorBrowsable(EditorBrowsableState.Never)] public IServiceCollection Services { get; } + public OpenIddictValidationBuilder ValidateOnStart() + { + Services.AddOptionsWithValidateOnStart(); + + return this; + } + /// /// Registers an event handler using the specified configuration delegate. ///