Browse Source

Update the client service to attach the additional parameters to the correct request instances

pull/1923/head
Kévin Chalet 2 years ago
parent
commit
7585ebfbed
  1. 10
      src/OpenIddict.Client/OpenIddictClientModels.cs
  2. 16
      src/OpenIddict.Client/OpenIddictClientService.cs

10
src/OpenIddict.Client/OpenIddictClientModels.cs

@ -19,11 +19,6 @@ public static class OpenIddictClientModels
/// </summary>
public sealed record class InteractiveAuthenticationRequest
{
/// <summary>
/// Gets or sets the parameters that will be added to the token request.
/// </summary>
public Dictionary<string, OpenIddictParameter>? AdditionalTokenRequestParameters { get; init; }
/// <summary>
/// Gets or sets the cancellation token that will be
/// used to determine if the operation was aborted.
@ -39,11 +34,6 @@ public static class OpenIddictClientModels
/// Gets or sets the application-specific properties that will be added to the context.
/// </summary>
public Dictionary<string, string?>? Properties { get; init; }
/// <summary>
/// Gets the scopes that will be sent to the authorization server.
/// </summary>
public List<string>? Scopes { get; init; }
}
/// <summary>

16
src/OpenIddict.Client/OpenIddictClientService.cs

@ -247,6 +247,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)
@ -521,7 +529,7 @@ public sealed class OpenIddictClientService
Issuer = request.Issuer,
ProviderName = request.ProviderName,
RegistrationId = request.RegistrationId,
Request = request.AdditionalTokenRequestParameters
TokenRequest = request.AdditionalTokenRequestParameters
is Dictionary<string, OpenIddictParameter> parameters ? new(parameters) : new(),
};
@ -630,13 +638,13 @@ public sealed class OpenIddictClientService
var context = new ProcessChallengeContext(transaction)
{
CancellationToken = request.CancellationToken,
DeviceAuthorizationRequest = request.AdditionalDeviceAuthorizationRequestParameters
is Dictionary<string, OpenIddictParameter> 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<string, OpenIddictParameter> parameters ? new(parameters) : new(),
RegistrationId = request.RegistrationId
};
if (request.Scopes is { Count: > 0 })

Loading…
Cancel
Save