From e3082f6ab535e02ebb6501c3d717713fff5fc115 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Fri, 25 Dec 2020 17:00:31 +0800 Subject: [PATCH] Enabled swagger login for HostWithIds project --- .../Templates/App/AppTemplateBase.cs | 4 ++++ ...emplateChangeDbMigratorPortSettingsStep.cs | 24 +++++++++++++++++++ .../appsettings.json | 2 +- .../MyProjectNameHttpApiHostModule.cs | 15 +++++++++--- .../appsettings.json | 4 +++- 5 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateChangeDbMigratorPortSettingsStep.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index a351589881..b5976b403f 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -103,6 +103,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App if (context.BuildArgs.ExtraProperties.ContainsKey("separate-identity-server")) { steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.HttpApi.HostWithIds")); + steps.Add(new AppTemplateChangeDbMigratorPortSettingsStep("44300")); } else { @@ -123,6 +124,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App { steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.HttpApi.HostWithIds")); steps.Add(new BlazorAppsettingsFilePortChangeForSeparatedIdentityServersStep()); + steps.Add(new AppTemplateChangeDbMigratorPortSettingsStep("44300")); } else { @@ -140,6 +142,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Web.Tests", projectFolderPath: "/aspnet-core/test/MyCompanyName.MyProjectName.Web.Tests")); steps.Add(new AppTemplateProjectRenameStep("MyCompanyName.MyProjectName.Web.Host", "MyCompanyName.MyProjectName.Web")); + steps.Add(new AppTemplateChangeDbMigratorPortSettingsStep("44300")); } else { @@ -162,6 +165,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App { steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.HttpApi.HostWithIds")); steps.Add(new AngularEnvironmentFilePortChangeForSeparatedIdentityServersStep()); + steps.Add(new AppTemplateChangeDbMigratorPortSettingsStep("44300")); if (context.BuildArgs.MobileApp == MobileApp.ReactNative) { diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateChangeDbMigratorPortSettingsStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateChangeDbMigratorPortSettingsStep.cs new file mode 100644 index 0000000000..2d192f1478 --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateChangeDbMigratorPortSettingsStep.cs @@ -0,0 +1,24 @@ +using Volo.Abp.Cli.ProjectBuilding.Building; +using Volo.Abp.Cli.ProjectBuilding.Files; + +namespace Volo.Abp.Cli.ProjectBuilding.Templates.App +{ + public class AppTemplateChangeDbMigratorPortSettingsStep : ProjectBuildPipelineStep + { + public string IdentityServerPort { get; } + + /// + public AppTemplateChangeDbMigratorPortSettingsStep( + string identityServerPort) + { + IdentityServerPort = identityServerPort; + } + + public override void Execute(ProjectBuildContext context) + { + context + .GetFile("/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json") + .ReplaceText("44305", IdentityServerPort); + } + } +} diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json index 2e4a69bd49..1d9beacd54 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/appsettings.json @@ -21,7 +21,7 @@ "MyProjectName_Swagger": { "ClientId": "MyProjectName_Swagger", "ClientSecret": "1q2w3e*", - "RootUrl": "https://localhost:44300" + "RootUrl": "https://localhost:44305" } } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs index 39cedbb06a..ac55c87569 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs @@ -58,7 +58,7 @@ namespace MyCompanyName.MyProjectName ConfigureLocalization(); ConfigureVirtualFileSystem(context); ConfigureCors(context, configuration); - ConfigureSwaggerServices(context); + ConfigureSwaggerServices(context, configuration); } private void ConfigureBundles() @@ -129,9 +129,14 @@ namespace MyCompanyName.MyProjectName }); } - private static void ConfigureSwaggerServices(ServiceConfigurationContext context) + private static void ConfigureSwaggerServices(ServiceConfigurationContext context, IConfiguration configuration) { - context.Services.AddSwaggerGen( + context.Services.AddAbpSwaggerGenWithOAuth( + configuration["AuthServer:Authority"], + new Dictionary + { + {"MyProjectName", "MyProjectName API"} + }, options => { options.SwaggerDoc("v1", new OpenApiInfo {Title = "MyProjectName API", Version = "v1"}); @@ -216,6 +221,10 @@ namespace MyCompanyName.MyProjectName app.UseAbpSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API"); + + var configuration = context.ServiceProvider.GetRequiredService(); + c.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); + c.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); }); app.UseAuditing(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json index 795753ec9d..1051a8576c 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json @@ -9,7 +9,9 @@ }, "AuthServer": { "Authority": "https://localhost:44305", - "RequireHttpsMetadata": "false" + "RequireHttpsMetadata": "false", + "SwaggerClientId": "MyProjectName_Swagger", + "SwaggerClientSecret": "1q2w3e*" }, "StringEncryption": { "DefaultPassPhrase": "gsKnGZ041HLL4IM8"