From 843e5977b53b281a6ff5a7efc3527d1c304a59bc Mon Sep 17 00:00:00 2001 From: colin Date: Mon, 23 Jun 2025 16:46:23 +0800 Subject: [PATCH] feat(template): The template adds swagger oauth configuration --- .../ProjectNameHttpApiHostModule.Configure.cs | 21 ++++++++++++------- .../ProjectNameHttpApiHostModule.cs | 5 ++--- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.Configure.cs b/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.Configure.cs index 27c854419..3ab0ad2b2 100644 --- a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.Configure.cs +++ b/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.Configure.cs @@ -317,10 +317,15 @@ public partial class ProjectNameHttpApiHostModule } } - private void ConfigureSwagger(IServiceCollection services) + private void ConfigureSwagger(IServiceCollection services, IConfiguration configuration) { // Swagger - services.AddSwaggerGen( + services.AddAbpSwaggerGenWithOAuth( + configuration["AuthServer:Authority"], + new Dictionary + { + { configuration["AuthServer:Audience"], "ProjectName API"} + }, options => { options.SwaggerDoc("v1", new OpenApiInfo { Title = "ProjectName API", Version = "v1" }); @@ -337,13 +342,13 @@ public partial class ProjectNameHttpApiHostModule }); options.AddSecurityRequirement(new OpenApiSecurityRequirement { + { + new OpenApiSecurityScheme { - new OpenApiSecurityScheme - { - Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } - }, - new string[] { } - } + Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } + }, + new string[] { } + } }); options.OperationFilter(); options.HideAbpEndpoints(); diff --git a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs b/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs index b8f3bf007..6a109ba14 100644 --- a/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs +++ b/aspnet-core/templates/micro/content/host/PackageName.CompanyName.ProjectName.HttpApi.Host/ProjectNameHttpApiHostModule.cs @@ -115,9 +115,9 @@ public partial class ProjectNameHttpApiHostModule : AbpModule ConfigurePermissionManagement(configuration); ConfigureTextTemplatingManagement(configuration); - ConfigureSwagger(context.Services); ConfigureMvc(context.Services, configuration); ConfigureCors(context.Services, configuration); + ConfigureSwagger(context.Services, configuration); ConfigureDistributedLock(context.Services, configuration); ConfigureSecurity(context.Services, configuration, hostingEnvironment.IsDevelopment()); } @@ -147,8 +147,7 @@ public partial class ProjectNameHttpApiHostModule : AbpModule var configuration = context.GetConfiguration(); options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); - options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); - options.OAuthScopes("ProjectName"); + options.OAuthScopes(configuration["AuthServer:Audience"]); }); app.UseAuditing(); app.UseAbpSerilogEnrichers();