From 4c3842497eb68d5e9fefdd6cb91259552de0ebc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Chalet?= Date: Tue, 11 Oct 2022 22:06:30 +0200 Subject: [PATCH] Add default and required scopes before enforcing null checks --- ...OpenIddictClientWebIntegrationGenerator.cs | 40 +++++++++---------- ...ctClientWebIntegrationHandlers.Userinfo.cs | 2 +- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/gen/OpenIddict.Client.WebIntegration.Generators/OpenIddictClientWebIntegrationGenerator.cs b/gen/OpenIddict.Client.WebIntegration.Generators/OpenIddictClientWebIntegrationGenerator.cs index 686e1b58..47e2dccb 100644 --- a/gen/OpenIddict.Client.WebIntegration.Generators/OpenIddictClientWebIntegrationGenerator.cs +++ b/gen/OpenIddict.Client.WebIntegration.Generators/OpenIddictClientWebIntegrationGenerator.cs @@ -433,6 +433,26 @@ public partial class OpenIddictClientWebIntegrationConfiguration {{~ end ~}} {{~ end ~}} + {{~ for environment in provider.environments ~}} + if (options.Environment is OpenIddictClientWebIntegrationConstants.{{ provider.name }}.Environments.{{ environment.name }}) + { + if (options.Scopes.Count is 0) + { + {{~ for scope in environment.scopes ~}} + {{~ if scope.default && !scope.required ~}} + options.Scopes.Add(""{{ scope.name }}""); + {{~ end ~}} + {{~ end ~}} + } + + {{~ for scope in environment.scopes ~}} + {{~ if scope.required ~}} + options.Scopes.Add(""{{ scope.name }}""); + {{~ end ~}} + {{~ end ~}} + } + {{~ end ~}} + if (string.IsNullOrEmpty(options.ClientId)) { throw new InvalidOperationException(SR.FormatID0332(nameof(options.ClientId), Providers.{{ provider.name }})); @@ -455,26 +475,6 @@ public partial class OpenIddictClientWebIntegrationConfiguration } {{~ end ~}} {{~ end ~}} - - {{~ for environment in provider.environments ~}} - if (options.Environment is OpenIddictClientWebIntegrationConstants.{{ provider.name }}.Environments.{{ environment.name }}) - { - if (options.Scopes.Count is 0) - { - {{~ for scope in environment.scopes ~}} - {{~ if scope.default && !scope.required ~}} - options.Scopes.Add(""{{ scope.name }}""); - {{~ end ~}} - {{~ end ~}} - } - - {{~ for scope in environment.scopes ~}} - {{~ if scope.required ~}} - options.Scopes.Add(""{{ scope.name }}""); - {{~ end ~}} - {{~ end ~}} - } - {{~ end ~}} } /// diff --git a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs index 6e310563..593d6e38 100644 --- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs +++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs @@ -103,7 +103,7 @@ public static partial class OpenIddictClientWebIntegrationHandlers context.Response = context.Registration.ProviderName switch { // Twitter uses a nested object. - Providers.Twitter => (JsonElement?) context.Response["data"] + Providers.Twitter => (JsonElement) context.Response["data"] is { ValueKind: JsonValueKind.Object } element ? new(element) : throw new InvalidOperationException(SR.FormatID0334("data")),