chore: alle Projekte in das Verzeichnis src verschieben
This commit is contained in:
22
src/WorkFlow.API/Extensions/DIExtensions.cs
Normal file
22
src/WorkFlow.API/Extensions/DIExtensions.cs
Normal file
@@ -0,0 +1,22 @@
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
using WorkFlow.API.Filters;
|
||||
using WorkFlow.API.Models;
|
||||
|
||||
namespace WorkFlow.API.Extensions
|
||||
{
|
||||
public static class DIExtensions
|
||||
{
|
||||
public static IServiceCollection AddAPIKeyAuth(this IServiceCollection services, Func<string?, bool> isValidKey, string headerName = "X-API-Key")
|
||||
=> services.AddSingleton<APIKeyAuthFilter>(provider => new(isValidKey: isValidKey, headerName: headerName));
|
||||
|
||||
public static IServiceCollection AddAPIKeyAuth(this IServiceCollection services, APIKeyAuthOptions options, bool configureOptions = true)
|
||||
{
|
||||
if(configureOptions)
|
||||
services.TryAddSingleton(Options.Create(options));
|
||||
|
||||
return services.AddAPIKeyAuth(isValidKey: key => options.Key is null || options.Key == key, headerName: options.HeaderName);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user