From af478e974c167f81fc101ded9574a19882c5e514 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Fri, 20 Dec 2024 09:44:04 +0100 Subject: [PATCH] =?UTF-8?q?refactor(TokenDescriptorProvider):=20entfernt?= =?UTF-8?q?=20und=20eine=20Mapper-Erweiterungsmethode=20mit=20derselben=20?= =?UTF-8?q?Funktionalit=C3=A4t=20zur=20Vereinfachung=20hinzugef=C3=BCgt.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DigitalData.Core.Security/DIExtensions.cs | 2 +- DigitalData.Core.Security/Extension.cs | 19 +++++++++++++++++++ .../JwtSignatureService.cs | 7 ++++--- .../TokenDescriptorProvider.cs | 12 ------------ 4 files changed, 24 insertions(+), 16 deletions(-) create mode 100644 DigitalData.Core.Security/Extension.cs delete mode 100644 DigitalData.Core.Security/TokenDescriptorProvider.cs diff --git a/DigitalData.Core.Security/DIExtensions.cs b/DigitalData.Core.Security/DIExtensions.cs index 2555719..2d57ced 100644 --- a/DigitalData.Core.Security/DIExtensions.cs +++ b/DigitalData.Core.Security/DIExtensions.cs @@ -24,7 +24,7 @@ namespace DigitalData.Core.Security _mappingProfile.Added = true; return services .AddAutoMapper(typeof(MappingProfile).Assembly) - .AddSingleton(); + .AddSingleton(); } } diff --git a/DigitalData.Core.Security/Extension.cs b/DigitalData.Core.Security/Extension.cs new file mode 100644 index 0000000..a2ac9c5 --- /dev/null +++ b/DigitalData.Core.Security/Extension.cs @@ -0,0 +1,19 @@ +using AutoMapper; +using DigitalData.Core.Security.Config; +using Microsoft.IdentityModel.Tokens; + +namespace DigitalData.Core.Security +{ + public static class Extension + { + /// + /// Maps a to a . + /// + /// The instance used for mapping. + /// The instance to be mapped. + /// A instance populated with the mapped values. + /// Thrown if or is null. + public static SecurityTokenDescriptor Map(this IMapper mapper, TokenDescription description) + => mapper.Map(description, new SecurityTokenDescriptor()); + } +} \ No newline at end of file diff --git a/DigitalData.Core.Security/JwtSignatureService.cs b/DigitalData.Core.Security/JwtSignatureService.cs index 6494af6..fc5986c 100644 --- a/DigitalData.Core.Security/JwtSignatureService.cs +++ b/DigitalData.Core.Security/JwtSignatureService.cs @@ -1,17 +1,18 @@ -using DigitalData.Core.Security.Config; +using AutoMapper; +using DigitalData.Core.Security.Config; using Microsoft.Extensions.Options; using Microsoft.IdentityModel.Tokens; using System.IdentityModel.Tokens.Jwt; namespace DigitalData.Core.Security { - public class JwtSignatureService(IOptions> claimDescriptorOptions, TokenDescriptorProvider descriptorProvider) : JwtSecurityTokenHandler + public class JwtSignatureService(IOptions> claimDescriptorOptions, IMapper mapper) : JwtSecurityTokenHandler { private readonly ClaimDescriptor _claimDescriptor = claimDescriptorOptions.Value; public SecurityToken CreateToken(TPrincipal subject, TokenDescription description) { - var descriptor = descriptorProvider.Create(description: description); + var descriptor = mapper.Map(description); descriptor.Claims = _claimDescriptor.CreateClaims?.Invoke(subject); descriptor.Subject = _claimDescriptor.CreateSubject?.Invoke(subject); return CreateToken(descriptor); diff --git a/DigitalData.Core.Security/TokenDescriptorProvider.cs b/DigitalData.Core.Security/TokenDescriptorProvider.cs deleted file mode 100644 index a29a024..0000000 --- a/DigitalData.Core.Security/TokenDescriptorProvider.cs +++ /dev/null @@ -1,12 +0,0 @@ -using AutoMapper; -using DigitalData.Core.Security.Config; -using Microsoft.IdentityModel.Tokens; - -namespace DigitalData.Core.Security -{ - public class TokenDescriptorProvider(IMapper mapper) - { - public SecurityTokenDescriptor Create(TokenDescription description) - => mapper.Map(description, new SecurityTokenDescriptor()); - } -} \ No newline at end of file