feat(ClaimDescriptor): Erstellt, um claimsMapper und subjectMapper von TPrincipal für SecurityTokenDescriptor zu registrieren.
- DI-Erweiterungsmethode erstellt.
This commit is contained in:
parent
b6b12c7702
commit
6f5b4efefb
11
DigitalData.Core.Security/Config/ClaimDescriptor.cs
Normal file
11
DigitalData.Core.Security/Config/ClaimDescriptor.cs
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
using System.Security.Claims;
|
||||||
|
|
||||||
|
namespace DigitalData.Core.Security.Config
|
||||||
|
{
|
||||||
|
public class ClaimDescriptor<TPrincipal>
|
||||||
|
{
|
||||||
|
public Func<TPrincipal, IDictionary<string, object>>? CreateClaims { get; init; }
|
||||||
|
|
||||||
|
public Func<TPrincipal, ClaimsIdentity>? CreateSubject { get; init; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -4,6 +4,7 @@ using DigitalData.Core.Security.Cryptographer;
|
|||||||
using Microsoft.Extensions.Configuration;
|
using Microsoft.Extensions.Configuration;
|
||||||
using Microsoft.Extensions.DependencyInjection;
|
using Microsoft.Extensions.DependencyInjection;
|
||||||
using Microsoft.Extensions.Options;
|
using Microsoft.Extensions.Options;
|
||||||
|
using System.Security.Claims;
|
||||||
|
|
||||||
namespace DigitalData.Core.Security
|
namespace DigitalData.Core.Security
|
||||||
{
|
{
|
||||||
@ -123,5 +124,18 @@ namespace DigitalData.Core.Security
|
|||||||
? services.AddParamsConfigureOptions<TRSAFactoryParams>().AddSingleton<IRSAFactory, RSAFactory<TRSAFactoryParams>>()
|
? services.AddParamsConfigureOptions<TRSAFactoryParams>().AddSingleton<IRSAFactory, RSAFactory<TRSAFactoryParams>>()
|
||||||
: services.AddParamsConfigureOptions<TRSAFactoryParams>().AddSingleton<IRSAFactory<TRSAFactoryParams>, RSAFactory<TRSAFactoryParams>>();
|
: services.AddParamsConfigureOptions<TRSAFactoryParams>().AddSingleton<IRSAFactory<TRSAFactoryParams>, RSAFactory<TRSAFactoryParams>>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static IServiceCollection AddClaimDescriptor<TPrincipal>(this IServiceCollection services,
|
||||||
|
Func<TPrincipal, IDictionary<string, object>>? claimsMapper = null,
|
||||||
|
Func<TPrincipal, ClaimsIdentity>? subjectMapper = null)
|
||||||
|
{
|
||||||
|
var descriptor = new ClaimDescriptor<TPrincipal>
|
||||||
|
{
|
||||||
|
CreateClaims = claimsMapper,
|
||||||
|
CreateSubject = subjectMapper
|
||||||
|
};
|
||||||
|
|
||||||
|
return services.AddSingleton(sp => Options.Create(descriptor));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user