feat(IJwtSignatureService): Erstellt und implementiert

This commit is contained in:
Developer 02 2025-01-06 15:06:31 +01:00
parent 2cf0eb3977
commit 275b9ec858
2 changed files with 22 additions and 1 deletions

View File

@ -0,0 +1,19 @@
using Microsoft.IdentityModel.Tokens;
namespace DigitalData.Core.Abstractions.Security
{
public interface IJwtSignatureService<TPrincipal>
{
SecurityToken CreateToken(SecurityTokenDescriptor tokenDescriptor);
SecurityToken CreateToken(TPrincipal subject, TokenDescription description);
SecurityToken CreateToken(TPrincipal subject, string issuer, string audience);
string CreateAndWriteToken(SecurityTokenDescriptor descriptor);
string CreateAndWriteToken(TPrincipal subject, TokenDescription description);
string CreateAndWriteToken(TPrincipal subject, string issuer, string audience);
}
}

View File

@ -7,7 +7,7 @@ using System.IdentityModel.Tokens.Jwt;
namespace DigitalData.Core.Security namespace DigitalData.Core.Security
{ {
public class JwtSignatureService<TPrincipal> : JwtSecurityTokenHandler public class JwtSignatureService<TPrincipal> : JwtSecurityTokenHandler, IJwtSignatureService<TPrincipal>
{ {
private readonly ClaimDescriptor<TPrincipal> _claimDescriptor; private readonly ClaimDescriptor<TPrincipal> _claimDescriptor;
@ -45,6 +45,8 @@ namespace DigitalData.Core.Security
return CreateToken(subject: subject, description: description); return CreateToken(subject: subject, description: description);
} }
public string CreateAndWriteToken(SecurityTokenDescriptor descriptor) => WriteToken(CreateToken(descriptor));
public string CreateAndWriteToken(TPrincipal subject, TokenDescription description) => WriteToken(CreateToken(subject: subject, description: description)); public string CreateAndWriteToken(TPrincipal subject, TokenDescription description) => WriteToken(CreateToken(subject: subject, description: description));
public string CreateAndWriteToken(TPrincipal subject, string issuer, string audience) => WriteToken(CreateToken(subject: subject, issuer: issuer, audience: audience)); public string CreateAndWriteToken(TPrincipal subject, string issuer, string audience) => WriteToken(CreateToken(subject: subject, issuer: issuer, audience: audience));