From 34e14fd2f5604fe8e74ceee67ed338806f82032e Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Tue, 7 Jan 2025 16:34:19 +0100 Subject: [PATCH] refactor(RSATokenDescriptor): In die Abstraktionsschicht verschoben und in PrivateKeyTokenDescriptor umbenannt --- .../Security/IAsymmetricPrivateKey.cs | 2 ++ .../Security/PrivateKeyTokenDescriptor.cs | 13 ++++++------- DigitalData.Core.Security/Config/MappingProfile.cs | 3 ++- DigitalData.Core.Security/Cryptograph.cs | 2 +- DigitalData.Core.Security/Extension.cs | 3 ++- DigitalData.Core.Security/RSAKey/RSAPrivateKey.cs | 9 ++++----- 6 files changed, 17 insertions(+), 15 deletions(-) rename DigitalData.Core.Security/RSAKey/RSATokenDescriptor.cs => DigitalData.Core.Abstractions/Security/PrivateKeyTokenDescriptor.cs (91%) diff --git a/DigitalData.Core.Abstractions/Security/IAsymmetricPrivateKey.cs b/DigitalData.Core.Abstractions/Security/IAsymmetricPrivateKey.cs index 22b3eed..4b23bf9 100644 --- a/DigitalData.Core.Abstractions/Security/IAsymmetricPrivateKey.cs +++ b/DigitalData.Core.Abstractions/Security/IAsymmetricPrivateKey.cs @@ -8,6 +8,8 @@ namespace DigitalData.Core.Abstractions.Security IAsymmetricPublicKey PublicKey { get; } + PrivateKeyTokenDescriptor? TokenDescriptor { get; init; } + byte[] Decrypt(byte[] data); string Decrypt(string data); diff --git a/DigitalData.Core.Security/RSAKey/RSATokenDescriptor.cs b/DigitalData.Core.Abstractions/Security/PrivateKeyTokenDescriptor.cs similarity index 91% rename from DigitalData.Core.Security/RSAKey/RSATokenDescriptor.cs rename to DigitalData.Core.Abstractions/Security/PrivateKeyTokenDescriptor.cs index 6cd5303..dd7919d 100644 --- a/DigitalData.Core.Security/RSAKey/RSATokenDescriptor.cs +++ b/DigitalData.Core.Abstractions/Security/PrivateKeyTokenDescriptor.cs @@ -1,19 +1,18 @@ -using DigitalData.Core.Abstractions.Security; -using Microsoft.IdentityModel.Tokens; +using Microsoft.IdentityModel.Tokens; -namespace DigitalData.Core.Security.Config +namespace DigitalData.Core.Abstractions.Security { /// /// Contains some information which used to create a security token. Designed to abstract /// - public class RSATokenDescriptor : IUniqueSecurityContext + public class PrivateKeyTokenDescriptor : IUniqueSecurityContext { public string? ApiRoute { get; init; } /// /// Gets or sets the value of the 'audience' claim. /// - public new string Audience { get; internal set; } + public new string Audience { get; set; } /// /// Defines the compression algorithm that will be used to compress the JWT token payload. @@ -31,9 +30,9 @@ namespace DigitalData.Core.Security.Config public DateTime? Expires { get; set; } /// - /// Gets or sets the issuer of this . + /// Gets or sets the issuer of this . /// - public new string Issuer { get; internal set; } + public new string Issuer { get; set; } /// /// Gets or sets the time the security token was issued. This value should be in UTC. diff --git a/DigitalData.Core.Security/Config/MappingProfile.cs b/DigitalData.Core.Security/Config/MappingProfile.cs index cadfe44..8ed0860 100644 --- a/DigitalData.Core.Security/Config/MappingProfile.cs +++ b/DigitalData.Core.Security/Config/MappingProfile.cs @@ -1,4 +1,5 @@ using AutoMapper; +using DigitalData.Core.Abstractions.Security; using Microsoft.IdentityModel.Tokens; namespace DigitalData.Core.Security.Config @@ -7,7 +8,7 @@ namespace DigitalData.Core.Security.Config { public MappingProfile() { - CreateMap(); + CreateMap(); } } } \ No newline at end of file diff --git a/DigitalData.Core.Security/Cryptograph.cs b/DigitalData.Core.Security/Cryptograph.cs index 0384735..e278270 100644 --- a/DigitalData.Core.Security/Cryptograph.cs +++ b/DigitalData.Core.Security/Cryptograph.cs @@ -19,7 +19,7 @@ namespace DigitalData.Core.Security public IEnumerable PublicKeys => _lazyPublicKeys.Value; - public IEnumerable TokenDescriptions { get; init; } = new List(); + public IEnumerable TokenDescriptions { get; init; } = new List(); public Cryptograph(IOptions options, ILogger? logger = null) : base(options) { diff --git a/DigitalData.Core.Security/Extension.cs b/DigitalData.Core.Security/Extension.cs index dc6dee8..7045254 100644 --- a/DigitalData.Core.Security/Extension.cs +++ b/DigitalData.Core.Security/Extension.cs @@ -1,4 +1,5 @@ using AutoMapper; +using DigitalData.Core.Abstractions.Security; using DigitalData.Core.Security.Config; using Microsoft.IdentityModel.Tokens; @@ -91,7 +92,7 @@ namespace DigitalData.Core.Security /// The instance to be mapped. /// A instance populated with the mapped values. /// Thrown if or is null. - internal static SecurityTokenDescriptor Map(this IMapper mapper, RSATokenDescriptor description) + internal static SecurityTokenDescriptor Map(this IMapper mapper, PrivateKeyTokenDescriptor description) => mapper.Map(description, new SecurityTokenDescriptor()); } } \ No newline at end of file diff --git a/DigitalData.Core.Security/RSAKey/RSAPrivateKey.cs b/DigitalData.Core.Security/RSAKey/RSAPrivateKey.cs index 07dc170..a1a5a84 100644 --- a/DigitalData.Core.Security/RSAKey/RSAPrivateKey.cs +++ b/DigitalData.Core.Security/RSAKey/RSAPrivateKey.cs @@ -1,5 +1,4 @@ using DigitalData.Core.Abstractions.Security; -using DigitalData.Core.Security.Config; using Microsoft.IdentityModel.Tokens; using System.Security.Cryptography; @@ -29,11 +28,11 @@ namespace DigitalData.Core.Security.RSAKey public IAsymmetricPublicKey PublicKey => _lazyPublicKey.Value; - private RSATokenDescriptor? _tokenDescriptor; + private PrivateKeyTokenDescriptor? _tokenDescriptor; - private readonly Lazy _descLazyInitter; + private readonly Lazy _descriptorInitiator; - public RSATokenDescriptor? TokenDescriptor { get => _descLazyInitter.Value; init => _tokenDescriptor = value; } + public PrivateKeyTokenDescriptor? TokenDescriptor { get => _descriptorInitiator.Value; init => _tokenDescriptor = value; } public RSAPrivateKey() { @@ -43,7 +42,7 @@ namespace DigitalData.Core.Security.RSAKey Padding = Padding }); - _descLazyInitter = new(() => + _descriptorInitiator = new(() => { if(_tokenDescriptor is not null) {