feat(API): Methode zur Injektion von Abhängigkeiten hinzugefügt, um API-Schlüssel-Filter hinzuzufügen
This commit is contained in:
parent
b460de4e37
commit
e17875dad7
@ -3,9 +3,9 @@ using WorkFlow.API.Filters;
|
||||
|
||||
namespace WorkFlow.API.Attributes
|
||||
{
|
||||
public class ApiKeyAuthAttribute : ServiceFilterAttribute
|
||||
public class APIKeyAuthAttribute : ServiceFilterAttribute
|
||||
{
|
||||
public ApiKeyAuthAttribute()
|
||||
public APIKeyAuthAttribute()
|
||||
: base(typeof(ApiKeyAuthFilter))
|
||||
{
|
||||
}
|
||||
|
||||
10
WorkFlow.API/Extensions/DIExtensions.cs
Normal file
10
WorkFlow.API/Extensions/DIExtensions.cs
Normal file
@ -0,0 +1,10 @@
|
||||
using WorkFlow.API.Filters;
|
||||
|
||||
namespace WorkFlow.API.Extensions
|
||||
{
|
||||
public static class DIExtensions
|
||||
{
|
||||
public static IServiceCollection AddAPIKeyAuth(this IServiceCollection services, Func<string, bool> isValidKey, string apiKeyHeaderName = "X-API-Key")
|
||||
=> services.AddSingleton<APIKeyAuthFilter>(provider => new(isValidKey: isValidKey, apiKeyHeaderName: apiKeyHeaderName));
|
||||
}
|
||||
}
|
||||
@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Mvc;
|
||||
|
||||
namespace WorkFlow.API.Filters
|
||||
{
|
||||
public class ApiKeyAuthFilter(Func<string, bool> isValidKey, string apiKeyHeaderName = "X-API-Key") : IAuthorizationFilter
|
||||
public class APIKeyAuthFilter(Func<string, bool> isValidKey, string apiKeyHeaderName = "X-API-Key") : IAuthorizationFilter
|
||||
{
|
||||
public void OnAuthorization(AuthorizationFilterContext context)
|
||||
{
|
||||
|
||||
@ -10,6 +10,8 @@ using Microsoft.IdentityModel.Tokens;
|
||||
using WorkFlow.API.Models;
|
||||
using NLog;
|
||||
using NLog.Web;
|
||||
using WorkFlow.API.Extensions;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
var logger = LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
|
||||
logger.Info("Logging initialized.");
|
||||
@ -34,6 +36,8 @@ try
|
||||
{
|
||||
Claims = user.ToClaimList().ToDictionary(claim => claim.Type, claim => claim.Value as object)
|
||||
});
|
||||
if (config.GetValue<string>("API-Key") is string apiKey)
|
||||
builder.Services.AddApiKeyAuth(key => key == apiKey);
|
||||
|
||||
builder.Services.AddControllers();
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user