From fa96b44d8f67c6d12f3378a8c07794e9ce5b9108 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 11 May 2023 16:02:07 +0800 Subject: [PATCH] Refactor `ClaimsPrincipal` handle way of OpenIddict. Resolve #16529 --- .../POST.md | 6 ++++ docs/en/Modules/OpenIddict.md | 12 +++---- .../ExtensionGrants/MyTokenExtensionGrant.cs | 2 +- .../AbpOpenIddictAspNetCoreModule.cs | 4 +-- .../AbpOpenIddictClaimDestinationsManager.cs | 32 ------------------- .../AbpOpenIddictClaimDestinationsOptions.cs | 13 -------- ...nIddictClaimDestinationsProviderContext.cs | 20 ------------ ...IAbpOpenIddictClaimDestinationsProvider.cs | 8 ----- ...efaultOpenIddictClaimsPrincipalHandler.cs} | 6 ++-- ...OpenIddictClaimsPrincipalHandlerContext.cs | 21 ++++++++++++ .../AbpOpenIddictClaimsPrincipalManager.cs | 32 +++++++++++++++++++ .../AbpOpenIddictClaimsPrincipalOptions.cs | 13 ++++++++ .../IAbpOpenIddictClaimsPrincipalHandler.cs | 8 +++++ .../AbpOpenIdDictControllerBase.cs | 7 +--- .../Controllers/AuthorizeController.cs | 4 +-- .../TokenController.AuthorizationCode.cs | 2 +- .../Controllers/TokenController.DeviceCode.cs | 2 +- .../Controllers/TokenController.Password.cs | 2 +- .../TokenController.RefreshToken.cs | 2 +- 19 files changed, 99 insertions(+), 97 deletions(-) delete mode 100644 modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsManager.cs delete mode 100644 modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsOptions.cs delete mode 100644 modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsProviderContext.cs delete mode 100644 modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/IAbpOpenIddictClaimDestinationsProvider.cs rename modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/{ClaimDestinations/AbpDefaultOpenIddictClaimDestinationsProvider.cs => Claims/AbpDefaultOpenIddictClaimsPrincipalHandler.cs} (91%) create mode 100644 modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalHandlerContext.cs create mode 100644 modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalManager.cs create mode 100644 modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalOptions.cs create mode 100644 modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/IAbpOpenIddictClaimsPrincipalHandler.cs diff --git a/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/POST.md b/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/POST.md index 73a0d7589c..0401c31898 100644 --- a/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/POST.md +++ b/docs/en/Community-Articles/2022-11-14-How-to-add-a-custom-grant-type-in-OpenIddict/POST.md @@ -71,7 +71,13 @@ public class MyTokenExtensionGrant : ITokenExtensionGrant var claimsPrincipal = await userClaimsPrincipalFactory.CreateAsync(user); claimsPrincipal.SetScopes(principal.GetScopes()); claimsPrincipal.SetResources(await GetResourcesAsync(context, principal.GetScopes())); + + //abp version < 7.3 await context.HttpContext.RequestServices.GetRequiredService().SetAsync(principal); + + //For abp version >= 7.3 + await context.HttpContext.RequestServices.GetRequiredService().HandleAsync(context.Request, principal); + return new SignInResult(OpenIddictServerAspNetCoreDefaults.AuthenticationScheme, claimsPrincipal); } diff --git a/docs/en/Modules/OpenIddict.md b/docs/en/Modules/OpenIddict.md index 74598ab1f8..db13d4b452 100644 --- a/docs/en/Modules/OpenIddict.md +++ b/docs/en/Modules/OpenIddict.md @@ -323,16 +323,16 @@ Configure(options => [Claims Principal Factory](https://docs.abp.io/en/abp/latest/Authorization#claims-principal-factory) can be used to add/remove claims to the `ClaimsPrincipal`. -The `AbpDefaultOpenIddictClaimDestinationsProvider` service will add `Name`, `Email,` and `Role` types of Claims to `access_token` and `id_token`, other claims are only added to `access_token` by default, and remove the `SecurityStampClaimType` secret claim of `Identity`. +The `AbpDefaultOpenIddictClaimsPrincipalHandler` service will add `Name`, `Email,` and `Role` types of Claims to `access_token` and `id_token`, other claims are only added to `access_token` by default, and remove the `SecurityStampClaimType` secret claim of `Identity`. -Create a service that inherits from `IAbpOpenIddictClaimDestinationsProvider` and add it to DI to fully control the destinations of claims. +Create a service that inherits from `IAbpOpenIddictClaimsPrincipalHandler` and add it to DI to fully control the destinations of claims. ```cs -public class MyClaimDestinationsProvider : IAbpOpenIddictClaimDestinationsProvider, ITransientDependency +public class MyClaimDestinationsHandler : IAbpOpenIddictClaimsPrincipalHandler, ITransientDependency { - public virtual Task SetDestinationsAsync(AbpOpenIddictClaimDestinationsProviderContext context) + public virtual Task HandleAsync(AbpOpenIddictClaimsPrincipalHandlerContext context) { - foreach (var claim in context.Claims) + foreach (var claim in context.Principal.Claims) { if (claim.Type == MyClaims.MyClaimsType) { @@ -351,7 +351,7 @@ public class MyClaimDestinationsProvider : IAbpOpenIddictClaimDestinationsProvid Configure(options => { - options.ClaimDestinationsProvider.Add(); + options.ClaimsPrincipalHandlers.Add(); }); ``` diff --git a/modules/openiddict/app/OpenIddict.Demo.Server/ExtensionGrants/MyTokenExtensionGrant.cs b/modules/openiddict/app/OpenIddict.Demo.Server/ExtensionGrants/MyTokenExtensionGrant.cs index 62e4cba0b3..b5167621ef 100644 --- a/modules/openiddict/app/OpenIddict.Demo.Server/ExtensionGrants/MyTokenExtensionGrant.cs +++ b/modules/openiddict/app/OpenIddict.Demo.Server/ExtensionGrants/MyTokenExtensionGrant.cs @@ -78,7 +78,7 @@ public class MyTokenExtensionGrant : ITokenExtensionGrant var claimsPrincipal = await userClaimsPrincipalFactory.CreateAsync(user); claimsPrincipal.SetScopes(principal.GetScopes()); claimsPrincipal.SetResources(await GetResourcesAsync(context, principal.GetScopes())); - await context.HttpContext.RequestServices.GetRequiredService().SetAsync(principal); + await context.HttpContext.RequestServices.GetRequiredService().HandleAsync(context.Request, principal); return new SignInResult(OpenIddictServerAspNetCoreDefaults.AuthenticationScheme, claimsPrincipal); } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs index 3ee5dbf126..23f41900b5 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/AbpOpenIddictAspNetCoreModule.cs @@ -22,9 +22,9 @@ public class AbpOpenIddictAspNetCoreModule : AbpModule { AddOpenIddictServer(context.Services); - Configure(options => + Configure(options => { - options.ClaimDestinationsProvider.Add(); + options.ClaimsPrincipalHandlers.Add(); }); Configure(options => diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsManager.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsManager.cs deleted file mode 100644 index 2974f8ba1d..0000000000 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsManager.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System.Linq; -using System.Security.Claims; -using System.Threading.Tasks; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -using Volo.Abp.DependencyInjection; - -namespace Volo.Abp.OpenIddict; - -public class AbpOpenIddictClaimDestinationsManager : ISingletonDependency -{ - protected IServiceScopeFactory ServiceScopeFactory { get; } - protected IOptions Options { get; } - - public AbpOpenIddictClaimDestinationsManager(IServiceScopeFactory serviceScopeFactory, IOptions options) - { - ServiceScopeFactory = serviceScopeFactory; - Options = options; - } - - public virtual async Task SetAsync(ClaimsPrincipal principal) - { - using (var scope = ServiceScopeFactory.CreateScope()) - { - foreach (var providerType in Options.Value.ClaimDestinationsProvider) - { - var provider = (IAbpOpenIddictClaimDestinationsProvider)scope.ServiceProvider.GetRequiredService(providerType); - await provider.SetDestinationsAsync(new AbpOpenIddictClaimDestinationsProviderContext(scope.ServiceProvider, principal, principal.Claims.ToArray())); - } - } - } -} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsOptions.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsOptions.cs deleted file mode 100644 index e6094dbc03..0000000000 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsOptions.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Volo.Abp.Collections; - -namespace Volo.Abp.OpenIddict; - -public class AbpOpenIddictClaimDestinationsOptions -{ - public ITypeList ClaimDestinationsProvider { get; } - - public AbpOpenIddictClaimDestinationsOptions() - { - ClaimDestinationsProvider = new TypeList(); - } -} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsProviderContext.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsProviderContext.cs deleted file mode 100644 index ff5d993e95..0000000000 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpOpenIddictClaimDestinationsProviderContext.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Security.Claims; - -namespace Volo.Abp.OpenIddict; - -public class AbpOpenIddictClaimDestinationsProviderContext -{ - public IServiceProvider ScopeServiceProvider { get; } - - public ClaimsPrincipal Principal{ get;} - - public Claim[] Claims { get; } - - public AbpOpenIddictClaimDestinationsProviderContext(IServiceProvider scopeServiceProvider, ClaimsPrincipal principal, Claim[] claims) - { - ScopeServiceProvider = scopeServiceProvider; - Principal = principal; - Claims = claims; - } -} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/IAbpOpenIddictClaimDestinationsProvider.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/IAbpOpenIddictClaimDestinationsProvider.cs deleted file mode 100644 index e499545163..0000000000 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/IAbpOpenIddictClaimDestinationsProvider.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.Threading.Tasks; - -namespace Volo.Abp.OpenIddict; - -public interface IAbpOpenIddictClaimDestinationsProvider -{ - Task SetDestinationsAsync(AbpOpenIddictClaimDestinationsProviderContext context); -} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpDefaultOpenIddictClaimDestinationsProvider.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpDefaultOpenIddictClaimsPrincipalHandler.cs similarity index 91% rename from modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpDefaultOpenIddictClaimDestinationsProvider.cs rename to modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpDefaultOpenIddictClaimsPrincipalHandler.cs index b200dfc4a4..7a5b3d2835 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/ClaimDestinations/AbpDefaultOpenIddictClaimDestinationsProvider.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpDefaultOpenIddictClaimsPrincipalHandler.cs @@ -9,16 +9,16 @@ using Volo.Abp.Security.Claims; namespace Volo.Abp.OpenIddict; -public class AbpDefaultOpenIddictClaimDestinationsProvider : IAbpOpenIddictClaimDestinationsProvider, ITransientDependency +public class AbpDefaultOpenIddictClaimsPrincipalHandler : IAbpOpenIddictClaimsPrincipalHandler, ITransientDependency { - public virtual Task SetDestinationsAsync(AbpOpenIddictClaimDestinationsProviderContext context) + public virtual Task HandleAsync(AbpOpenIddictClaimsPrincipalHandlerContext context) { var securityStampClaimType = context .ScopeServiceProvider .GetRequiredService>().Value .ClaimsIdentity.SecurityStampClaimType; - foreach (var claim in context.Claims) + foreach (var claim in context.Principal.Claims) { if (claim.Type == AbpClaimTypes.TenantId) { diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalHandlerContext.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalHandlerContext.cs new file mode 100644 index 0000000000..314f3a63ed --- /dev/null +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalHandlerContext.cs @@ -0,0 +1,21 @@ +using System; +using System.Security.Claims; +using OpenIddict.Abstractions; + +namespace Volo.Abp.OpenIddict; + +public class AbpOpenIddictClaimsPrincipalHandlerContext +{ + public IServiceProvider ScopeServiceProvider { get; } + + public OpenIddictRequest OpenIddictRequest { get; } + + public ClaimsPrincipal Principal { get;} + + public AbpOpenIddictClaimsPrincipalHandlerContext(IServiceProvider scopeServiceProvider, OpenIddictRequest openIddictRequest, ClaimsPrincipal principal) + { + ScopeServiceProvider = scopeServiceProvider; + OpenIddictRequest = openIddictRequest; + Principal = principal; + } +} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalManager.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalManager.cs new file mode 100644 index 0000000000..fa72e6c6bd --- /dev/null +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalManager.cs @@ -0,0 +1,32 @@ +using System.Security.Claims; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using OpenIddict.Abstractions; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.OpenIddict; + +public class AbpOpenIddictClaimsPrincipalManager : ISingletonDependency +{ + protected IServiceScopeFactory ServiceScopeFactory { get; } + protected IOptions Options { get; } + + public AbpOpenIddictClaimsPrincipalManager(IServiceScopeFactory serviceScopeFactory, IOptions options) + { + ServiceScopeFactory = serviceScopeFactory; + Options = options; + } + + public virtual async Task HandleAsync(OpenIddictRequest openIddictRequest, ClaimsPrincipal principal) + { + using (var scope = ServiceScopeFactory.CreateScope()) + { + foreach (var providerType in Options.Value.ClaimsPrincipalHandlers) + { + var provider = (IAbpOpenIddictClaimsPrincipalHandler)scope.ServiceProvider.GetRequiredService(providerType); + await provider.HandleAsync(new AbpOpenIddictClaimsPrincipalHandlerContext(scope.ServiceProvider, openIddictRequest, principal)); + } + } + } +} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalOptions.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalOptions.cs new file mode 100644 index 0000000000..b8931f6f41 --- /dev/null +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/AbpOpenIddictClaimsPrincipalOptions.cs @@ -0,0 +1,13 @@ +using Volo.Abp.Collections; + +namespace Volo.Abp.OpenIddict; + +public class AbpOpenIddictClaimsPrincipalOptions +{ + public ITypeList ClaimsPrincipalHandlers { get; } + + public AbpOpenIddictClaimsPrincipalOptions() + { + ClaimsPrincipalHandlers = new TypeList(); + } +} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/IAbpOpenIddictClaimsPrincipalHandler.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/IAbpOpenIddictClaimsPrincipalHandler.cs new file mode 100644 index 0000000000..3e2752e819 --- /dev/null +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Claims/IAbpOpenIddictClaimsPrincipalHandler.cs @@ -0,0 +1,8 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.OpenIddict; + +public interface IAbpOpenIddictClaimsPrincipalHandler +{ + Task HandleAsync(AbpOpenIddictClaimsPrincipalHandlerContext context); +} diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs index d1321ad9e1..7e8f6386b9 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AbpOpenIdDictControllerBase.cs @@ -25,7 +25,7 @@ public abstract class AbpOpenIdDictControllerBase : AbpController protected IOpenIddictAuthorizationManager AuthorizationManager => LazyServiceProvider.LazyGetRequiredService(); protected IOpenIddictScopeManager ScopeManager => LazyServiceProvider.LazyGetRequiredService(); protected IOpenIddictTokenManager TokenManager => LazyServiceProvider.LazyGetRequiredService(); - protected AbpOpenIddictClaimDestinationsManager OpenIddictClaimDestinationsManager => LazyServiceProvider.LazyGetRequiredService(); + protected AbpOpenIddictClaimsPrincipalManager OpenIddictClaimsPrincipalManager => LazyServiceProvider.LazyGetRequiredService(); protected AbpOpenIdDictControllerBase() { @@ -55,11 +55,6 @@ public abstract class AbpOpenIdDictControllerBase : AbpController return resources; } - protected virtual async Task SetClaimsDestinationsAsync(ClaimsPrincipal principal) - { - await OpenIddictClaimDestinationsManager.SetAsync(principal); - } - protected virtual async Task HasFormValueAsync(string name) { if (Request.HasFormContentType) diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs index ec764ab242..961252aae7 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/AuthorizeController.cs @@ -132,7 +132,7 @@ public class AuthorizeController : AbpOpenIdDictControllerBase principal.SetAuthorizationId(await AuthorizationManager.GetIdAsync(authorization)); - await SetClaimsDestinationsAsync(principal); + await OpenIddictClaimsPrincipalManager.HandleAsync(request, principal); return SignIn(principal, OpenIddictServerAspNetCoreDefaults.AuthenticationScheme); @@ -227,7 +227,7 @@ public class AuthorizeController : AbpOpenIdDictControllerBase principal.SetScopes(request.GetScopes()); principal.SetResources(await GetResourcesAsync(request.GetScopes())); - await SetClaimsDestinationsAsync(principal); + await OpenIddictClaimsPrincipalManager.HandleAsync(request, principal); // Returning a SignInResult will ask OpenIddict to issue the appropriate access/identity tokens. return SignIn(principal, OpenIddictServerAspNetCoreDefaults.AuthenticationScheme); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.AuthorizationCode.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.AuthorizationCode.cs index 89a00f1a8a..58812f8111 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.AuthorizationCode.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.AuthorizationCode.cs @@ -44,7 +44,7 @@ public partial class TokenController })); } - await SetClaimsDestinationsAsync(principal); + await OpenIddictClaimsPrincipalManager.HandleAsync(request, principal); // Returning a SignInResult will ask OpenIddict to issue the appropriate access/identity tokens. return SignIn(principal, OpenIddictServerAspNetCoreDefaults.AuthenticationScheme); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.DeviceCode.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.DeviceCode.cs index cbe021854c..a581dbcf7b 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.DeviceCode.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.DeviceCode.cs @@ -44,7 +44,7 @@ public partial class TokenController })); } - await SetClaimsDestinationsAsync(principal); + await OpenIddictClaimsPrincipalManager.HandleAsync(request, principal); // Returning a SignInResult will ask OpenIddict to issue the appropriate access/identity tokens. return SignIn(principal, OpenIddictServerAspNetCoreDefaults.AuthenticationScheme); diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.Password.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.Password.cs index dd9d46b2de..a91745b519 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.Password.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.Password.cs @@ -323,7 +323,7 @@ public partial class TokenController principal.SetScopes(request.GetScopes()); principal.SetResources(await GetResourcesAsync(request.GetScopes())); - await SetClaimsDestinationsAsync(principal); + await OpenIddictClaimsPrincipalManager.HandleAsync(request, principal); await IdentitySecurityLogManager.SaveAsync( new IdentitySecurityLogContext diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.RefreshToken.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.RefreshToken.cs index c234ddd62e..e13cd3c595 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.RefreshToken.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/TokenController.RefreshToken.cs @@ -44,7 +44,7 @@ public partial class TokenController })); } - await SetClaimsDestinationsAsync(principal); + await OpenIddictClaimsPrincipalManager.HandleAsync(request, principal); // Returning a SignInResult will ask OpenIddict to issue the appropriate access/identity tokens. return SignIn(principal, OpenIddictServerAspNetCoreDefaults.AuthenticationScheme);