Experiment with setting up system test docker services

This commit is contained in:
ThompsonNye
2024-08-09 18:39:26 +02:00
parent 07bdf36eb1
commit 17427ca3d0
13 changed files with 590 additions and 13 deletions

View File

@@ -11,6 +11,8 @@ public class JwtOptions
public string MetadataUrl { get; set; } = "";
public string? NameClaimType { get; set; }
public bool AllowHttpMetadataUrl { get; set; }
}
public class JwtOptionsValidator : AbstractValidator<JwtOptions>

View File

@@ -18,14 +18,16 @@ public static class DependencyInjectionExtensions
/// Adds all the WebApi related services to the Dependency Injection container.
/// </summary>
/// <param name="services"></param>
public static void AddWebApiServices(this IServiceCollection services, IConfiguration configuration)
/// <param name="configuration"></param>
/// <param name="environment"></param>
public static void AddWebApiServices(this IServiceCollection services, IConfiguration configuration, IHostEnvironment environment)
{
services
.AddMiscellaneousServices()
.AddOpenApi()
.AddApiVersioning()
.AddOtel()
.AddAuthenticationAndAuthorization()
.AddAuthenticationAndAuthorization(environment)
.AddDbContext(configuration);
}
@@ -113,7 +115,7 @@ public static class DependencyInjectionExtensions
return services;
}
private static IServiceCollection AddAuthenticationAndAuthorization(this IServiceCollection services)
private static IServiceCollection AddAuthenticationAndAuthorization(this IServiceCollection services, IHostEnvironment environment)
{
services.AddOptions<JwtOptions>()
.BindConfiguration(JwtOptions.SectionName)
@@ -134,6 +136,8 @@ public static class DependencyInjectionExtensions
{
o.TokenValidationParameters.NameClaimType = jwtOptions.Value.NameClaimType;
}
o.RequireHttpsMetadata = !jwtOptions.Value.AllowHttpMetadataUrl && !environment.IsDevelopment();
});
services.AddAuthorizationBuilder()

View File

@@ -11,7 +11,7 @@ internal static class StartupExtensions
{
builder.Configuration.AddEnvironmentVariables("Vegasco_");
builder.Services.AddWebApiServices(builder.Configuration);
builder.Services.AddWebApiServices(builder.Configuration, builder.Environment);
WebApplication app = builder.Build();
return app;