Add `RandomizeAuthServerPassPhraseStep`.

pull/16268/head
maliming 3 years ago
parent 121e923c0a
commit f8f405e744
No known key found for this signature in database
GPG Key ID: A646B9CB645ECEA4

@ -69,19 +69,19 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc"));
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Blazor.Server"));
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Host"));
steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server", steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Server",
"MyCompanyName.MyProjectName.Host")); "MyCompanyName.MyProjectName.Host"));
steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Client", steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Client",
"MyCompanyName.MyProjectName.Blazor")); "MyCompanyName.MyProjectName.Blazor"));
steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared", steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Blazor.WebAssembly.Shared",
"MyCompanyName.MyProjectName.Contracts")); "MyCompanyName.MyProjectName.Contracts"));
steps.Add(new AppNoLayersMoveProjectsStep()); steps.Add(new AppNoLayersMoveProjectsStep());
steps.Add(new AppNoLayersMigrateDatabaseChangeStep()); steps.Add(new AppNoLayersMigrateDatabaseChangeStep());
steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly")); steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly"));
break; break;
case UiFramework.BlazorServer: case UiFramework.BlazorServer:
steps.Add(new RemoveFolderStep("/angular")); steps.Add(new RemoveFolderStep("/angular"));
steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc")); steps.Add(new RemoveProjectFromSolutionStep("MyCompanyName.MyProjectName.Mvc"));
@ -98,7 +98,7 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase
steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Mvc", "MyCompanyName.MyProjectName")); steps.Add(new ProjectRenameStep("MyCompanyName.MyProjectName.Mvc", "MyCompanyName.MyProjectName"));
RemoveBlazorWasmProjects(steps); RemoveBlazorWasmProjects(steps);
break; break;
default: default:
throw new AbpException("Unkown UI framework: " + context.BuildArgs.UiFramework); throw new AbpException("Unkown UI framework: " + context.BuildArgs.UiFramework);
} }
@ -107,6 +107,7 @@ public abstract class AppNoLayersTemplateBase : AppTemplateBase
steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations")); steps.Add(new RemoveFolderStep("/aspnet-core/MyCompanyName.MyProjectName.Host/Migrations"));
RandomizeSslPorts(context, steps); RandomizeSslPorts(context, steps);
RandomizeStringEncryption(context, steps); RandomizeStringEncryption(context, steps);
RandomizeAuthServerPassPhrase(context, steps);
UpdateNuGetConfig(context, steps); UpdateNuGetConfig(context, steps);
ChangeConnectionString(context, steps); ChangeConnectionString(context, steps);
ConfigureDockerFiles(context, steps); ConfigureDockerFiles(context, steps);

@ -41,6 +41,7 @@ public abstract class AppTemplateBase : TemplateInfo
RemoveUnnecessaryPorts(context, steps); RemoveUnnecessaryPorts(context, steps);
RandomizeSslPorts(context, steps); RandomizeSslPorts(context, steps);
RandomizeStringEncryption(context, steps); RandomizeStringEncryption(context, steps);
RandomizeAuthServerPassPhrase(context, steps);
UpdateNuGetConfig(context, steps); UpdateNuGetConfig(context, steps);
ConfigureDockerFiles(context, steps); ConfigureDockerFiles(context, steps);
ChangeConnectionString(context, steps); ChangeConnectionString(context, steps);
@ -240,7 +241,7 @@ public abstract class AppTemplateBase : TemplateInfo
private static bool IsDefaultThemeForTemplate(ProjectBuildArgs args) private static bool IsDefaultThemeForTemplate(ProjectBuildArgs args)
{ {
var templateThemes = new Dictionary<string, Theme> var templateThemes = new Dictionary<string, Theme>
{ {
{ AppTemplate.TemplateName, AppTemplate.DefaultTheme }, { AppTemplate.TemplateName, AppTemplate.DefaultTheme },
{ AppProTemplate.TemplateName, AppProTemplate.DefaultTheme }, { AppProTemplate.TemplateName, AppProTemplate.DefaultTheme },
@ -610,6 +611,11 @@ public abstract class AppTemplateBase : TemplateInfo
steps.Add(new RandomizeStringEncryptionStep()); steps.Add(new RandomizeStringEncryptionStep());
} }
protected static void RandomizeAuthServerPassPhrase(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps)
{
steps.Add(new RandomizeAuthServerPassPhraseStep());
}
protected void UpdateNuGetConfig(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps) protected void UpdateNuGetConfig(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps)
{ {
steps.Add(new UpdateNuGetConfigStep("/aspnet-core/NuGet.Config")); steps.Add(new UpdateNuGetConfigStep("/aspnet-core/NuGet.Config"));

@ -38,6 +38,7 @@ public abstract class MicroserviceServiceTemplateBase : TemplateInfo
DeleteUnrelatedUiProject(context, steps); DeleteUnrelatedUiProject(context, steps);
SetRandomPortForHostProject(context, steps); SetRandomPortForHostProject(context, steps);
RandomizeStringEncryption(context, steps); RandomizeStringEncryption(context, steps);
RandomizeAuthServerPassPhrase(context, steps);
return steps; return steps;
} }
@ -69,4 +70,9 @@ public abstract class MicroserviceServiceTemplateBase : TemplateInfo
{ {
steps.Add(new MicroserviceServiceStringEncryptionStep()); steps.Add(new MicroserviceServiceStringEncryptionStep());
} }
private static void RandomizeAuthServerPassPhrase(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps)
{
steps.Add(new RandomizeAuthServerPassPhraseStep());
}
} }

@ -23,19 +23,20 @@ public abstract class MicroserviceTemplateBase : TemplateInfo
DeleteUnrelatedProjects(context, steps); DeleteUnrelatedProjects(context, steps);
RandomizeStringEncryption(context, steps); RandomizeStringEncryption(context, steps);
RandomizeAuthServerPassPhrase(context, steps);
UpdateNuGetConfig(context, steps); UpdateNuGetConfig(context, steps);
ConfigureTheme(context, steps); ConfigureTheme(context, steps);
return steps; return steps;
} }
protected void ConfigureTheme(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps) protected void ConfigureTheme(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps)
{ {
if (!context.BuildArgs.Theme.HasValue) if (!context.BuildArgs.Theme.HasValue)
{ {
return; return;
} }
if (context.BuildArgs.Theme != Theme.NotSpecified) if (context.BuildArgs.Theme != Theme.NotSpecified)
{ {
context.Symbols.Add(context.BuildArgs.Theme.Value.ToString().ToUpper()); context.Symbols.Add(context.BuildArgs.Theme.Value.ToString().ToUpper());
@ -54,7 +55,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo
private static void RemoveLeptonXThemePackagesFromPackageJsonFiles(List<ProjectBuildPipelineStep> steps, UiFramework uiFramework) private static void RemoveLeptonXThemePackagesFromPackageJsonFiles(List<ProjectBuildPipelineStep> steps, UiFramework uiFramework)
{ {
var mvcUiPackageName = "@volo/abp.aspnetcore.mvc.ui.theme.leptonx"; var mvcUiPackageName = "@volo/abp.aspnetcore.mvc.ui.theme.leptonx";
var packageJsonFilePaths = new List<string> var packageJsonFilePaths = new List<string>
{ {
"/MyCompanyName.MyProjectName.AuthServer/package.json", "/MyCompanyName.MyProjectName.AuthServer/package.json",
"/MyCompanyName.MyProjectName.Web/package.json" "/MyCompanyName.MyProjectName.Web/package.json"
@ -68,11 +69,11 @@ public abstract class MicroserviceTemplateBase : TemplateInfo
if (uiFramework == UiFramework.BlazorServer) if (uiFramework == UiFramework.BlazorServer)
{ {
var blazorServerUiPackageName = "@volo/aspnetcore.components.server.leptonxtheme"; var blazorServerUiPackageName = "@volo/aspnetcore.components.server.leptonxtheme";
var blazorServerPackageJsonFilePaths = new List<string> var blazorServerPackageJsonFilePaths = new List<string>
{ {
"/MyCompanyName.MyProjectName.Blazor/package.json" "/MyCompanyName.MyProjectName.Blazor/package.json"
}; };
foreach (var blazorServerPackageJsonFilePath in blazorServerPackageJsonFilePaths) foreach (var blazorServerPackageJsonFilePath in blazorServerPackageJsonFilePaths)
{ {
steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, mvcUiPackageName)); steps.Add(new RemoveDependencyFromPackageJsonFileStep(blazorServerPackageJsonFilePath, mvcUiPackageName));
@ -82,11 +83,11 @@ public abstract class MicroserviceTemplateBase : TemplateInfo
else if (uiFramework == UiFramework.Angular) else if (uiFramework == UiFramework.Angular)
{ {
var ngUiPackageName = "@volosoft/abp.ng.theme.lepton-x"; var ngUiPackageName = "@volosoft/abp.ng.theme.lepton-x";
var angularPackageJsonFilePaths = new List<string> var angularPackageJsonFilePaths = new List<string>
{ {
"/angular/package.json" "/angular/package.json"
}; };
foreach (var angularPackageJsonFilePath in angularPackageJsonFilePaths) foreach (var angularPackageJsonFilePath in angularPackageJsonFilePaths)
{ {
steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, ngUiPackageName)); steps.Add(new RemoveDependencyFromPackageJsonFileStep(angularPackageJsonFilePath, ngUiPackageName));
@ -138,7 +139,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo
steps.Add(new RemoveFolderStep("/apps/blazor")); steps.Add(new RemoveFolderStep("/apps/blazor"));
steps.Add(new RemoveProjectFromTyeStep("blazor")); steps.Add(new RemoveProjectFromTyeStep("blazor"));
steps.Add(new RemoveProjectFromTyeStep("blazor-server")); steps.Add(new RemoveProjectFromTyeStep("blazor-server"));
context.Symbols.Add("ui:angular"); context.Symbols.Add("ui:angular");
break; break;
@ -157,7 +158,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo
null, null,
"/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Server")); "/apps/blazor/src/MyCompanyName.MyProjectName.Blazor.Server"));
steps.Add(new RemoveProjectFromTyeStep("blazor-server")); steps.Add(new RemoveProjectFromTyeStep("blazor-server"));
context.Symbols.Add("ui:blazor"); context.Symbols.Add("ui:blazor");
break; break;
@ -180,7 +181,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo
steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server", steps.Add(new TemplateProjectRenameStep("MyCompanyName.MyProjectName.Blazor.Server",
"MyCompanyName.MyProjectName.Blazor")); "MyCompanyName.MyProjectName.Blazor"));
steps.Add(new RenameProjectInTyeStep("blazor-server", "blazor")); steps.Add(new RenameProjectInTyeStep("blazor-server", "blazor"));
context.Symbols.Add("ui:blazor-server"); context.Symbols.Add("ui:blazor-server");
break; break;
@ -198,7 +199,7 @@ public abstract class MicroserviceTemplateBase : TemplateInfo
steps.Add(new RemoveProjectFromTyeStep("blazor-server")); steps.Add(new RemoveProjectFromTyeStep("blazor-server"));
steps.Add(new RemoveFolderStep("/apps/angular")); steps.Add(new RemoveFolderStep("/apps/angular"));
context.Symbols.Add("ui:mvc"); context.Symbols.Add("ui:mvc");
break; break;
} }
@ -215,4 +216,9 @@ public abstract class MicroserviceTemplateBase : TemplateInfo
{ {
steps.Add(new UpdateNuGetConfigStep("/NuGet.Config")); steps.Add(new UpdateNuGetConfigStep("/NuGet.Config"));
} }
private static void RandomizeAuthServerPassPhrase(ProjectBuildContext context, List<ProjectBuildPipelineStep> steps)
{
steps.Add(new RandomizeAuthServerPassPhraseStep());
}
} }

@ -0,0 +1,35 @@
using System;
using System.Linq;
using Volo.Abp.Cli.ProjectBuilding.Building;
namespace Volo.Abp.Cli.ProjectBuilding.Templates;
public class RandomizeAuthServerPassPhraseStep : ProjectBuildPipelineStep
{
protected const string DefaultPassPhrase = "00000000-0000-0000-0000-000000000000";
public override void Execute(ProjectBuildContext context)
{
var appSettings = context.Files
.Where(x => !x.IsDirectory)
.Where(x => x.Content.IndexOf(DefaultPassPhrase, StringComparison.InvariantCultureIgnoreCase) >= 0)
.ToList();
var randomPassPhrase = Guid.NewGuid().ToString("D");
foreach (var appSetting in appSettings)
{
appSetting.NormalizeLineEndings();
var appSettingLines = appSetting.GetLines();
for (var i = 0; i < appSettingLines.Length; i++)
{
if (appSettingLines[i].Contains(DefaultPassPhrase))
{
appSettingLines[i] = appSettingLines[i].Replace(DefaultPassPhrase, randomPassPhrase);
}
}
appSetting.SetLines(appSettingLines);
}
}
}
Loading…
Cancel
Save