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 mapClaims
.Select( .Select(
claim => new Claim( claim => new Claim(
mapOptions.Maps[claim.Type], mapOptions.Maps[claim.Type](),
claim.Value, claim.Value,
claim.ValueType, claim.ValueType,
claim.Issuer 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; using Volo.Abp.Security.Claims;
namespace Volo.Abp.AspNetCore.Security.Claims namespace Volo.Abp.AspNetCore.Security.Claims
{ {
public class AbpClaimsMapOptions public class AbpClaimsMapOptions
{ {
public Dictionary<string, string> Maps { get; } public Dictionary<string, Func<string>> Maps { get; }
public AbpClaimsMapOptions() public AbpClaimsMapOptions()
{ {
Maps = new Dictionary<string, string>() Maps = new Dictionary<string, Func<string>>()
{ {
{ "sub", AbpClaimTypes.UserId }, { "sub", () => AbpClaimTypes.UserId },
{ "role", AbpClaimTypes.Role }, { "role", () => AbpClaimTypes.Role },
{ "email", AbpClaimTypes.Email }, { "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 => Configure<AbpClaimsMapOptions>(options =>
{ {
options.Maps.Add("SerialNumber", ClaimTypes.SerialNumber); options.Maps.Add("SerialNumber", () => ClaimTypes.SerialNumber);
options.Maps.Add("DateOfBirth", ClaimTypes.DateOfBirth); options.Maps.Add("DateOfBirth", () => ClaimTypes.DateOfBirth);
}); });
} }

Loading…
Cancel
Save