From 5d844ee9e688a8c12e763be9bcc792b4f63b3942 Mon Sep 17 00:00:00 2001 From: Timo Notheisen Date: Wed, 11 Dec 2024 11:41:42 +0100 Subject: [PATCH 1/2] feat: remove TokenUrl from swaggerui settings --- .../Configuration/BackboneConfiguration.cs | 2 -- .../IServiceCollectionExtensions.cs | 30 ++----------------- Applications/ConsumerApi/src/Program.cs | 2 +- appsettings.override.json | 1 - docker-compose/appsettings.override.json | 1 - helm/values.yaml | 2 -- 6 files changed, 3 insertions(+), 35 deletions(-) diff --git a/Applications/ConsumerApi/src/Configuration/BackboneConfiguration.cs b/Applications/ConsumerApi/src/Configuration/BackboneConfiguration.cs index 0ec14cdad7..1a342d55a9 100644 --- a/Applications/ConsumerApi/src/Configuration/BackboneConfiguration.cs +++ b/Applications/ConsumerApi/src/Configuration/BackboneConfiguration.cs @@ -45,8 +45,6 @@ public class SwaggerUiConfiguration { [Required] public bool Enabled { get; set; } = false; - - public string TokenUrl { get; set; } = ""; } public class BackboneInfrastructureConfiguration diff --git a/Applications/ConsumerApi/src/Extensions/IServiceCollectionExtensions.cs b/Applications/ConsumerApi/src/Extensions/IServiceCollectionExtensions.cs index 685a89f2df..983605b5b4 100644 --- a/Applications/ConsumerApi/src/Extensions/IServiceCollectionExtensions.cs +++ b/Applications/ConsumerApi/src/Extensions/IServiceCollectionExtensions.cs @@ -14,10 +14,8 @@ using Backbone.Modules.Devices.Infrastructure.Persistence.Database; using Backbone.Modules.Devices.Infrastructure.PushNotifications.Connectors.Sse; using FluentValidation; -using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Diagnostics.HealthChecks; -using Microsoft.OpenApi.Models; using OpenIddict.Validation.AspNetCore; using PublicKey = Backbone.Modules.Devices.Application.Devices.DTOs.PublicKey; @@ -168,35 +166,11 @@ public static IServiceCollection AddCustomFluentValidation(this IServiceCollecti return services; } - public static IServiceCollection AddCustomSwaggerUi(this IServiceCollection services, - BackboneConfiguration.SwaggerUiConfiguration configuration) + public static IServiceCollection AddCustomSwaggerUi(this IServiceCollection services) { services .AddEndpointsApiExplorer() - .AddSwaggerGen(c => - { - var securityScheme = new OpenApiSecurityScheme - { - Type = SecuritySchemeType.OAuth2, - Flows = new OpenApiOAuthFlows { Password = new OpenApiOAuthFlow { TokenUrl = new Uri(configuration.TokenUrl) } }, - Name = "Authorization", - In = ParameterLocation.Header, - Scheme = "bearer", - UnresolvedReference = false, - BearerFormat = "JWT", - Reference = new OpenApiReference - { - Id = JwtBearerDefaults.AuthenticationScheme, - Type = ReferenceType.SecurityScheme - } - }; - - c.AddSecurityDefinition(securityScheme.Reference.Id, securityScheme); - c.AddSecurityRequirement(new OpenApiSecurityRequirement - { - { securityScheme, Array.Empty() } - }); - }); + .AddSwaggerGen(); return services; } diff --git a/Applications/ConsumerApi/src/Program.cs b/Applications/ConsumerApi/src/Program.cs index 192698f09e..33d674bff3 100644 --- a/Applications/ConsumerApi/src/Program.cs +++ b/Applications/ConsumerApi/src/Program.cs @@ -167,7 +167,7 @@ static void ConfigureServices(IServiceCollection services, IConfiguration config .AddCustomOpenIddict(parsedConfiguration.Authentication); if (parsedConfiguration.SwaggerUi.Enabled) - services.AddCustomSwaggerUi(parsedConfiguration.SwaggerUi); + services.AddCustomSwaggerUi(); services.Configure(options => { diff --git a/appsettings.override.json b/appsettings.override.json index 58436ad64b..59cad4a688 100644 --- a/appsettings.override.json +++ b/appsettings.override.json @@ -11,7 +11,6 @@ "AccessControlAllowCredentials": true }, "SwaggerUi": { - "TokenUrl": "http://localhost:5000/connect/token", "Enabled": true }, "Infrastructure": { diff --git a/docker-compose/appsettings.override.json b/docker-compose/appsettings.override.json index 5d756619b6..d95a37c08e 100644 --- a/docker-compose/appsettings.override.json +++ b/docker-compose/appsettings.override.json @@ -10,7 +10,6 @@ "AccessControlAllowCredentials": true }, "SwaggerUi": { - "TokenUrl": "http://localhost:8082/connect/token", "Enabled": true }, "Infrastructure": { diff --git a/helm/values.yaml b/helm/values.yaml index 4e9f0c4cb2..45293ed970 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -588,8 +588,6 @@ global: swaggerUi: # enabled - whether the Swagger UI should be enabled enabled: false - # tokenUrl - the URL from which the Swagger UI can obtain a JWT; it usually follows the pattern "/connect/token" - tokenUrl: "" infrastructure: eventBus: # vendor - possible values: "RabbitMQ"/"Azure"/"GoogleCloud" From 8938b1868f08eafcbe8e4fb61d02091085cb7c24 Mon Sep 17 00:00:00 2001 From: Timo Notheisen Date: Wed, 11 Dec 2024 12:28:00 +0100 Subject: [PATCH 2/2] feat: remove Swagger UI --- Applications/AdminApi/src/AdminApi/AdminApi.csproj | 1 - .../src/AdminApi/Configuration/AdminConfiguration.cs | 8 -------- .../AdminApi/Extensions/IServiceCollectionExtensions.cs | 9 --------- Applications/AdminApi/src/AdminApi/Program.cs | 6 ------ Applications/AdminApi/src/AdminApi/appsettings.json | 3 --- .../src/Configuration/BackboneConfiguration.cs | 8 -------- Applications/ConsumerApi/src/ConsumerApi.csproj | 1 - .../src/Extensions/IServiceCollectionExtensions.cs | 9 --------- Applications/ConsumerApi/src/Program.cs | 6 ------ Applications/ConsumerApi/src/appsettings.json | 3 --- appsettings.override.json | 3 --- docker-compose/adminui.appsettings.override.json | 3 --- docker-compose/appsettings.override.json | 3 --- helm/values.yaml | 3 --- 14 files changed, 66 deletions(-) diff --git a/Applications/AdminApi/src/AdminApi/AdminApi.csproj b/Applications/AdminApi/src/AdminApi/AdminApi.csproj index 255ab241ad..d96ef9d937 100644 --- a/Applications/AdminApi/src/AdminApi/AdminApi.csproj +++ b/Applications/AdminApi/src/AdminApi/AdminApi.csproj @@ -8,7 +8,6 @@ - diff --git a/Applications/AdminApi/src/AdminApi/Configuration/AdminConfiguration.cs b/Applications/AdminApi/src/AdminApi/Configuration/AdminConfiguration.cs index 15d62ed2ef..2dd378f8ca 100644 --- a/Applications/AdminApi/src/AdminApi/Configuration/AdminConfiguration.cs +++ b/Applications/AdminApi/src/AdminApi/Configuration/AdminConfiguration.cs @@ -10,8 +10,6 @@ public class AdminConfiguration public CorsConfiguration Cors { get; set; } = new(); - public SwaggerUiConfiguration SwaggerUi { get; set; } = new(); - [Required] public AdminInfrastructureConfiguration Infrastructure { get; set; } = new(); @@ -30,12 +28,6 @@ public class CorsConfiguration public bool AccessControlAllowCredentials { get; set; } = false; } - public class SwaggerUiConfiguration - { - [Required] - public bool Enabled { get; set; } = false; - } - public class AdminInfrastructureConfiguration { [Required] diff --git a/Applications/AdminApi/src/AdminApi/Extensions/IServiceCollectionExtensions.cs b/Applications/AdminApi/src/AdminApi/Extensions/IServiceCollectionExtensions.cs index 2b9f41d97f..68577ebaac 100644 --- a/Applications/AdminApi/src/AdminApi/Extensions/IServiceCollectionExtensions.cs +++ b/Applications/AdminApi/src/AdminApi/Extensions/IServiceCollectionExtensions.cs @@ -159,15 +159,6 @@ private static object GetPropertyValue(object source, string propertyPath) return source; } - public static IServiceCollection AddCustomSwaggerWithUi(this IServiceCollection services) - { - services - .AddEndpointsApiExplorer() - .AddSwaggerGen(); - - return services; - } - public static IServiceCollection AddOData(this IServiceCollection services) { var builder = new ODataConventionModelBuilder() diff --git a/Applications/AdminApi/src/AdminApi/Program.cs b/Applications/AdminApi/src/AdminApi/Program.cs index d83b17afcf..df48cc16e0 100644 --- a/Applications/AdminApi/src/AdminApi/Program.cs +++ b/Applications/AdminApi/src/AdminApi/Program.cs @@ -113,9 +113,6 @@ static void ConfigureServices(IServiceCollection services, IConfiguration config .AddChallenges(parsedConfiguration.Modules.Challenges) .AddHealthChecks(); - if (parsedConfiguration.SwaggerUi.Enabled) - services.AddCustomSwaggerWithUi(); - services .AddOpenIddict() .AddCore(options => @@ -190,9 +187,6 @@ static void Configure(WebApplication app) policies.AddCustomHeader("Access-Control-Allow-Credentials", "true"); }); - if (configuration.SwaggerUi.Enabled) - app.UseSwagger().UseSwaggerUI(); - if (app.Environment.IsDevelopment()) IdentityModelEventSource.ShowPII = true; diff --git a/Applications/AdminApi/src/AdminApi/appsettings.json b/Applications/AdminApi/src/AdminApi/appsettings.json index bcb241144e..29f83dc734 100644 --- a/Applications/AdminApi/src/AdminApi/appsettings.json +++ b/Applications/AdminApi/src/AdminApi/appsettings.json @@ -3,9 +3,6 @@ "Authentication": { "JwtLifetimeInSeconds": 300 }, - "SwaggerUi": { - "Enabled": false - }, "Infrastructure": { "EventBus": { "SubscriptionClientName": "adminui" diff --git a/Applications/ConsumerApi/src/Configuration/BackboneConfiguration.cs b/Applications/ConsumerApi/src/Configuration/BackboneConfiguration.cs index 1a342d55a9..497845e18e 100644 --- a/Applications/ConsumerApi/src/Configuration/BackboneConfiguration.cs +++ b/Applications/ConsumerApi/src/Configuration/BackboneConfiguration.cs @@ -18,8 +18,6 @@ public class BackboneConfiguration public CorsConfiguration Cors { get; set; } = new(); - public SwaggerUiConfiguration SwaggerUi { get; set; } = new(); - [Required] public BackboneInfrastructureConfiguration Infrastructure { get; set; } = new(); @@ -41,12 +39,6 @@ public class CorsConfiguration public string ExposedHeaders { get; set; } = ""; } - public class SwaggerUiConfiguration - { - [Required] - public bool Enabled { get; set; } = false; - } - public class BackboneInfrastructureConfiguration { [Required] diff --git a/Applications/ConsumerApi/src/ConsumerApi.csproj b/Applications/ConsumerApi/src/ConsumerApi.csproj index 892ee515b6..0843297ee7 100644 --- a/Applications/ConsumerApi/src/ConsumerApi.csproj +++ b/Applications/ConsumerApi/src/ConsumerApi.csproj @@ -13,7 +13,6 @@ - diff --git a/Applications/ConsumerApi/src/Extensions/IServiceCollectionExtensions.cs b/Applications/ConsumerApi/src/Extensions/IServiceCollectionExtensions.cs index 983605b5b4..8fc76489bb 100644 --- a/Applications/ConsumerApi/src/Extensions/IServiceCollectionExtensions.cs +++ b/Applications/ConsumerApi/src/Extensions/IServiceCollectionExtensions.cs @@ -165,15 +165,6 @@ public static IServiceCollection AddCustomFluentValidation(this IServiceCollecti return services; } - - public static IServiceCollection AddCustomSwaggerUi(this IServiceCollection services) - { - services - .AddEndpointsApiExplorer() - .AddSwaggerGen(); - - return services; - } } public class SseServerHealthCheck : IHealthCheck diff --git a/Applications/ConsumerApi/src/Program.cs b/Applications/ConsumerApi/src/Program.cs index 33d674bff3..da4caf932e 100644 --- a/Applications/ConsumerApi/src/Program.cs +++ b/Applications/ConsumerApi/src/Program.cs @@ -166,9 +166,6 @@ static void ConfigureServices(IServiceCollection services, IConfiguration config .AddCustomFluentValidation() .AddCustomOpenIddict(parsedConfiguration.Authentication); - if (parsedConfiguration.SwaggerUi.Enabled) - services.AddCustomSwaggerUi(); - services.Configure(options => { options.ForwardedHeaders = @@ -206,9 +203,6 @@ static void Configure(WebApplication app) var configuration = app.Services.GetRequiredService>().Value; - if (configuration.SwaggerUi.Enabled) - app.UseSwagger().UseSwaggerUI(); - if (app.Environment.IsDevelopment()) IdentityModelEventSource.ShowPII = true; diff --git a/Applications/ConsumerApi/src/appsettings.json b/Applications/ConsumerApi/src/appsettings.json index 61df97eedd..eaab20ca3d 100644 --- a/Applications/ConsumerApi/src/appsettings.json +++ b/Applications/ConsumerApi/src/appsettings.json @@ -3,9 +3,6 @@ "Authentication": { "JwtLifetimeInSeconds": 300 }, - "SwaggerUi": { - "Enabled": false - }, "Infrastructure": { "EventBus": { "SubscriptionClientName": "consumerapi", diff --git a/appsettings.override.json b/appsettings.override.json index 59cad4a688..d1d5654541 100644 --- a/appsettings.override.json +++ b/appsettings.override.json @@ -10,9 +10,6 @@ "ExposedHeaders": "", "AccessControlAllowCredentials": true }, - "SwaggerUi": { - "Enabled": true - }, "Infrastructure": { "EventBus": { "Vendor": "RabbitMQ", // possible values: InMemory, RabbitMQ, GoogleCloud, Azure diff --git a/docker-compose/adminui.appsettings.override.json b/docker-compose/adminui.appsettings.override.json index fe96ab1915..671e472318 100644 --- a/docker-compose/adminui.appsettings.override.json +++ b/docker-compose/adminui.appsettings.override.json @@ -7,9 +7,6 @@ "ExposedHeaders": "", "AccessControlAllowCredentials": true }, - "SwaggerUi": { - "Enabled": true - }, "Infrastructure": { "EventBus": { "Vendor": "RabbitMQ", // possible values: InMemory, RabbitMQ, GoogleCloud, Azure diff --git a/docker-compose/appsettings.override.json b/docker-compose/appsettings.override.json index d95a37c08e..2cc6146066 100644 --- a/docker-compose/appsettings.override.json +++ b/docker-compose/appsettings.override.json @@ -9,9 +9,6 @@ "ExposedHeaders": "", "AccessControlAllowCredentials": true }, - "SwaggerUi": { - "Enabled": true - }, "Infrastructure": { "EventBus": { "Vendor": "RabbitMQ", // possible values: InMemory, RabbitMQ, GoogleCloud, Azure diff --git a/helm/values.yaml b/helm/values.yaml index 45293ed970..97644db189 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -585,9 +585,6 @@ global: allowedOrigins: "" # allowedMethods - a semicolon-separated list of headers that are exposed to the client; the specified headers are recommended, because they are used by the official Enmeshed app exposedHeaders: "X-Request-Time;X-Response-Time;X-Response-Duration-ms;X-Trace-Id" - swaggerUi: - # enabled - whether the Swagger UI should be enabled - enabled: false infrastructure: eventBus: # vendor - possible values: "RabbitMQ"/"Azure"/"GoogleCloud"