From 1be599fe1ce1544001ae1ab2c4eee6adfadc2851 Mon Sep 17 00:00:00 2001 From: prtsie Date: Wed, 28 Aug 2024 11:57:36 +0300 Subject: [PATCH] Moved swagger configuration to one place --- .../Common/ConfigureSwaggerOptions.cs | 37 ------------------- .../SchengenVisaApi/DependencyInjection.cs | 28 +++++++++++++- 2 files changed, 26 insertions(+), 39 deletions(-) delete mode 100644 SchengenVisaApi/SchengenVisaApi/Common/ConfigureSwaggerOptions.cs diff --git a/SchengenVisaApi/SchengenVisaApi/Common/ConfigureSwaggerOptions.cs b/SchengenVisaApi/SchengenVisaApi/Common/ConfigureSwaggerOptions.cs deleted file mode 100644 index 4c7da47..0000000 --- a/SchengenVisaApi/SchengenVisaApi/Common/ConfigureSwaggerOptions.cs +++ /dev/null @@ -1,37 +0,0 @@ -using Microsoft.Extensions.Options; -using Microsoft.OpenApi.Models; -using Swashbuckle.AspNetCore.SwaggerGen; - -namespace SchengenVisaApi.Common; - -/// Adds auth for swagger -public class ConfigureSwaggerOptions : IConfigureOptions -{ - void IConfigureOptions.Configure(SwaggerGenOptions options) - { - options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme - { - In = ParameterLocation.Header, - Description = "Provide a JWT-token.", - Name = "Authorization", - Type = SecuritySchemeType.Http, - BearerFormat = "JWT", - Scheme = "Bearer" - }); - - options.AddSecurityRequirement(new OpenApiSecurityRequirement - { - { - new OpenApiSecurityScheme - { - Reference = new OpenApiReference - { - Type = ReferenceType.SecurityScheme, - Id = "Bearer" - } - }, - Array.Empty() - } - }); - } -} \ No newline at end of file diff --git a/SchengenVisaApi/SchengenVisaApi/DependencyInjection.cs b/SchengenVisaApi/SchengenVisaApi/DependencyInjection.cs index edc5c29..8f1b336 100644 --- a/SchengenVisaApi/SchengenVisaApi/DependencyInjection.cs +++ b/SchengenVisaApi/SchengenVisaApi/DependencyInjection.cs @@ -8,8 +8,8 @@ using Infrastructure; using Infrastructure.Auth; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authorization; -using Microsoft.Extensions.Options; using Microsoft.IdentityModel.Tokens; +using Microsoft.OpenApi.Models; using SchengenVisaApi.Common; using SchengenVisaApi.ExceptionFilters; using Swashbuckle.AspNetCore.SwaggerGen; @@ -92,7 +92,6 @@ public static class DependencyInjection /// Add swagger private static void AddSwagger(this IServiceCollection services) { - services.AddTransient, ConfigureSwaggerOptions>(); services.AddSwaggerGen(options => { var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; @@ -100,6 +99,31 @@ public static class DependencyInjection options.CustomOperationIds(apiDescription => apiDescription.TryGetMethodInfo(out MethodInfo methodInfo) ? methodInfo.Name : null); + + options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme + { + In = ParameterLocation.Header, + Description = "Provide a JWT-token.", + Name = "Authorization", + Type = SecuritySchemeType.Http, + BearerFormat = "JWT", + Scheme = "Bearer" + }); + + options.AddSecurityRequirement(new OpenApiSecurityRequirement + { + { + new OpenApiSecurityScheme + { + Reference = new OpenApiReference + { + Type = ReferenceType.SecurityScheme, + Id = "Bearer" + } + }, + Array.Empty() + } + }); }); } }