From f541dcd1f7a1583cb84189cd0013d3d921a0fb19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Chalet?= Date: Sat, 2 Dec 2023 08:43:43 +0100 Subject: [PATCH] Update the client service to attach the additional parameters to the correct request instances --- src/OpenIddict.Client/OpenIddictClientModels.cs | 2 ++ src/OpenIddict.Client/OpenIddictClientService.cs | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/OpenIddict.Client/OpenIddictClientModels.cs b/src/OpenIddict.Client/OpenIddictClientModels.cs index 617a0edb..4a200666 100644 --- a/src/OpenIddict.Client/OpenIddictClientModels.cs +++ b/src/OpenIddict.Client/OpenIddictClientModels.cs @@ -22,6 +22,7 @@ public static class OpenIddictClientModels /// /// Gets or sets the parameters that will be added to the token request. /// + [Obsolete("This property is no longer supported and will be removed in a future version.")] public Dictionary? AdditionalTokenRequestParameters { get; init; } /// @@ -43,6 +44,7 @@ public static class OpenIddictClientModels /// /// Gets the scopes that will be sent to the authorization server. /// + [Obsolete("This property is no longer supported and will be removed in a future version.")] public List? Scopes { get; init; } } diff --git a/src/OpenIddict.Client/OpenIddictClientService.cs b/src/OpenIddict.Client/OpenIddictClientService.cs index ffa117a5..96f28aa7 100644 --- a/src/OpenIddict.Client/OpenIddictClientService.cs +++ b/src/OpenIddict.Client/OpenIddictClientService.cs @@ -325,6 +325,14 @@ public sealed class OpenIddictClientService Nonce = request.Nonce }; + if (request.Properties is { Count: > 0 }) + { + foreach (var property in request.Properties) + { + context.Properties[property.Key] = property.Value; + } + } + await dispatcher.DispatchAsync(context); if (context.IsRejected) @@ -733,7 +741,7 @@ public sealed class OpenIddictClientService Issuer = request.Issuer, ProviderName = request.ProviderName, RegistrationId = request.RegistrationId, - Request = request.AdditionalTokenRequestParameters + TokenRequest = request.AdditionalTokenRequestParameters is Dictionary parameters ? new(parameters) : new(), }; @@ -912,13 +920,13 @@ public sealed class OpenIddictClientService var context = new ProcessChallengeContext(transaction) { CancellationToken = request.CancellationToken, + DeviceAuthorizationRequest = request.AdditionalDeviceAuthorizationRequestParameters + is Dictionary parameters ? new(parameters) : new(), GrantType = GrantTypes.DeviceCode, Issuer = request.Issuer, Principal = new ClaimsPrincipal(new ClaimsIdentity()), ProviderName = request.ProviderName, - RegistrationId = request.RegistrationId, - Request = request.AdditionalDeviceAuthorizationRequestParameters - is Dictionary parameters ? new(parameters) : new(), + RegistrationId = request.RegistrationId }; if (request.Scopes is { Count: > 0 })