diff --git a/DigitalData.Core.Security/GlobalSuppressions.cs b/DigitalData.Core.Security/GlobalSuppressions.cs new file mode 100644 index 0000000..36584e6 --- /dev/null +++ b/DigitalData.Core.Security/GlobalSuppressions.cs @@ -0,0 +1,8 @@ +// This file is used by Code Analysis to maintain SuppressMessage +// attributes that are applied to this project. +// Project-level suppressions either have no target or are given +// a specific target and scoped to a namespace, type, member, etc. + +using System.Diagnostics.CodeAnalysis; + +[assembly: SuppressMessage("Style", "IDE0290:Use primary constructor", Justification = "", Scope = "member", Target = "~M:DigitalData.Core.Security.JwtSignatureService`1.#ctor(Microsoft.Extensions.Options.IOptions{DigitalData.Core.Security.Config.ClaimDescriptor{`0}},AutoMapper.IMapper)")] diff --git a/DigitalData.Core.Security/JwtSignatureService.cs b/DigitalData.Core.Security/JwtSignatureService.cs index fc5986c..55d4e6f 100644 --- a/DigitalData.Core.Security/JwtSignatureService.cs +++ b/DigitalData.Core.Security/JwtSignatureService.cs @@ -6,13 +6,21 @@ using System.IdentityModel.Tokens.Jwt; namespace DigitalData.Core.Security { - public class JwtSignatureService(IOptions> claimDescriptorOptions, IMapper mapper) : JwtSecurityTokenHandler + public class JwtSignatureService : JwtSecurityTokenHandler { - private readonly ClaimDescriptor _claimDescriptor = claimDescriptorOptions.Value; + private readonly ClaimDescriptor _claimDescriptor; + + private readonly IMapper _mapper; + + public JwtSignatureService(IOptions> claimDescriptorOptions, IMapper mapper) + { + _claimDescriptor = claimDescriptorOptions.Value; + _mapper = mapper; + } public SecurityToken CreateToken(TPrincipal subject, TokenDescription description) { - var descriptor = mapper.Map(description); + var descriptor = _mapper.Map(description); descriptor.Claims = _claimDescriptor.CreateClaims?.Invoke(subject); descriptor.Subject = _claimDescriptor.CreateSubject?.Invoke(subject); return CreateToken(descriptor);