From 36e3cb1c820614b695b4eb8f2ced054572ffb047 Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 22 Mar 2021 11:52:41 +0800 Subject: [PATCH] Create default ClaimsIdentity for AbpClaimsPrincipalFactory. --- .../Volo/Abp/Security/Claims/AbpClaimsPrincipalFactory.cs | 7 ++++++- .../Abp/Security/Claims/AbpClaimsPrincipalFactory_Test.cs | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimsPrincipalFactory.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimsPrincipalFactory.cs index 828d317bad..899d71de04 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimsPrincipalFactory.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimsPrincipalFactory.cs @@ -8,6 +8,8 @@ namespace Volo.Abp.Security.Claims { public class AbpClaimsPrincipalFactory : IAbpClaimsPrincipalFactory, ITransientDependency { + public static string AuthenticationType => "Abp.Application"; + protected IServiceScopeFactory ServiceScopeFactory { get; } protected AbpClaimsPrincipalFactoryOptions Options { get; } @@ -23,7 +25,10 @@ namespace Volo.Abp.Security.Claims { using (var scope = ServiceScopeFactory.CreateScope()) { - var claimsPrincipal = existsClaimsPrincipal ?? new ClaimsPrincipal(); + var claimsPrincipal = existsClaimsPrincipal ?? new ClaimsPrincipal(new ClaimsIdentity( + AuthenticationType, + AbpClaimTypes.UserName, + AbpClaimTypes.Role)); var context = new AbpClaimsPrincipalContributorContext(claimsPrincipal, scope.ServiceProvider); diff --git a/framework/test/Volo.Abp.Security.Tests/Volo/Abp/Security/Claims/AbpClaimsPrincipalFactory_Test.cs b/framework/test/Volo.Abp.Security.Tests/Volo/Abp/Security/Claims/AbpClaimsPrincipalFactory_Test.cs index 39bdf25b7c..4cdcbe620b 100644 --- a/framework/test/Volo.Abp.Security.Tests/Volo/Abp/Security/Claims/AbpClaimsPrincipalFactory_Test.cs +++ b/framework/test/Volo.Abp.Security.Tests/Volo/Abp/Security/Claims/AbpClaimsPrincipalFactory_Test.cs @@ -44,12 +44,12 @@ namespace Volo.Abp.Security.Claims [Fact] public async Task Create_With_Exists_ClaimsPrincipal() { - var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(TestAuthenticationType, ClaimTypes.NameIdentifier, ClaimTypes.Role)); - claimsPrincipal.Identities.First().AddClaim(new Claim(ClaimTypes.NameIdentifier, "123")); + var claimsPrincipal = new ClaimsPrincipal(new ClaimsIdentity(TestAuthenticationType, ClaimTypes.Name, ClaimTypes.Role)); + claimsPrincipal.Identities.First().AddClaim(new Claim(ClaimTypes.Name, "123")); claimsPrincipal.Identities.First().AddClaim(new Claim(ClaimTypes.Role, "admin")); await _abpClaimsPrincipalFactory.CreateAsync(claimsPrincipal); - claimsPrincipal.Claims.ShouldContain(x => x.Type == ClaimTypes.NameIdentifier && x.Value == "123"); + claimsPrincipal.Claims.ShouldContain(x => x.Type == ClaimTypes.Name && x.Value == "123"); claimsPrincipal.Claims.ShouldContain(x => x.Type == ClaimTypes.Role && x.Value == "admin"); claimsPrincipal.Claims.ShouldContain(x => x.Type == ClaimTypes.Email && x.Value == "admin2@abp.io"); claimsPrincipal.Claims.ShouldNotContain(x => x.Type == ClaimTypes.Email && x.Value == "admin@abp.io");