Browse Source

#3985 Allow to dynamically map the claims.

pull/4021/head
Halil İbrahim Kalkan 6 years ago
parent
commit
34ec1ad0e7
  1. 2
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/AbpClaimsMapMiddleware.cs
  2. 13
      framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/AbpClaimsMapOptions.cs
  3. 4
      framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs

2
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/AbpClaimsMapMiddleware.cs

@ -31,7 +31,7 @@ namespace Volo.Abp.AspNetCore.Security.Claims
mapClaims
.Select(
claim => new Claim(
mapOptions.Maps[claim.Type],
mapOptions.Maps[claim.Type](),
claim.Value,
claim.ValueType,
claim.Issuer

13
framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Security/Claims/AbpClaimsMapOptions.cs

@ -1,19 +1,20 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using Volo.Abp.Security.Claims;
namespace Volo.Abp.AspNetCore.Security.Claims
{
public class AbpClaimsMapOptions
{
public Dictionary<string, string> Maps { get; }
public Dictionary<string, Func<string>> Maps { get; }
public AbpClaimsMapOptions()
{
Maps = new Dictionary<string, string>()
Maps = new Dictionary<string, Func<string>>()
{
{ "sub", AbpClaimTypes.UserId },
{ "role", AbpClaimTypes.Role },
{ "email", AbpClaimTypes.Email },
{ "sub", () => AbpClaimTypes.UserId },
{ "role", () => AbpClaimTypes.Role },
{ "email", () => AbpClaimTypes.Email },
};
}
}

4
framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/AbpAspNetCoreMvcTestModule.cs

@ -84,8 +84,8 @@ namespace Volo.Abp.AspNetCore.Mvc
Configure<AbpClaimsMapOptions>(options =>
{
options.Maps.Add("SerialNumber", ClaimTypes.SerialNumber);
options.Maps.Add("DateOfBirth", ClaimTypes.DateOfBirth);
options.Maps.Add("SerialNumber", () => ClaimTypes.SerialNumber);
options.Maps.Add("DateOfBirth", () => ClaimTypes.DateOfBirth);
});
}

Loading…
Cancel
Save