Browse Source

Reduce `StringEncryptionStep` code.

pull/10467/head
maliming 5 years ago
parent
commit
83f7c6c63d
No known key found for this signature in database GPG Key ID: 96224957E51C89E
  1. 27
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MicroserviceServiceStringEncryptionStep.cs
  2. 13
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs

27
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/MicroserviceServiceStringEncryptionStep.cs

@ -7,33 +7,12 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates
{ {
public class MicroserviceServiceStringEncryptionStep : RandomizeStringEncryptionStep public class MicroserviceServiceStringEncryptionStep : RandomizeStringEncryptionStep
{ {
public override void Execute(ProjectBuildContext context) protected override string GetRandomPassPhrase(ProjectBuildContext context)
{ {
var appSettings = context.Files return FindDefaultPassPhrase(context) ?? base.GetRandomPassPhrase(context);
.Where(x => !x.IsDirectory && x.Name.EndsWith("appSettings.json", StringComparison.InvariantCultureIgnoreCase))
.Where(x => x.Content.IndexOf("StringEncryption", StringComparison.InvariantCultureIgnoreCase) >= 0)
.ToList();
const string defaultPassPhrase = "gsKnGZ041HLL4IM8";
var randomPassPhrase = FindDefaultPassPhrase(context) ?? GetRandomString(defaultPassPhrase.Length);
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].Contains(defaultPassPhrase))
{
appSettingLines[i] = appSettingLines[i].Replace(defaultPassPhrase, randomPassPhrase);
}
}
appSetting.SetLines(appSettingLines);
}
} }
protected static string FindDefaultPassPhrase(ProjectBuildContext context) protected virtual string FindDefaultPassPhrase(ProjectBuildContext context)
{ {
var directoryInfo = new DirectoryInfo(context.BuildArgs.OutputFolder); var directoryInfo = new DirectoryInfo(context.BuildArgs.OutputFolder);
do do

13
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs

@ -7,6 +7,8 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates
{ {
public class RandomizeStringEncryptionStep: ProjectBuildPipelineStep public class RandomizeStringEncryptionStep: ProjectBuildPipelineStep
{ {
protected const string DefaultPassPhrase = "gsKnGZ041HLL4IM8";
public override void Execute(ProjectBuildContext context) public override void Execute(ProjectBuildContext context)
{ {
var appSettings = context.Files var appSettings = context.Files
@ -14,8 +16,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates
.Where(x => x.Content.IndexOf("StringEncryption", StringComparison.InvariantCultureIgnoreCase) >= 0) .Where(x => x.Content.IndexOf("StringEncryption", StringComparison.InvariantCultureIgnoreCase) >= 0)
.ToList(); .ToList();
const string defaultPassPhrase = "gsKnGZ041HLL4IM8"; var randomPassPhrase = GetRandomPassPhrase(context);
var randomPassPhrase = GetRandomString(defaultPassPhrase.Length);
foreach (var appSetting in appSettings) foreach (var appSetting in appSettings)
{ {
appSetting.NormalizeLineEndings(); appSetting.NormalizeLineEndings();
@ -23,9 +24,9 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates
var appSettingLines = appSetting.GetLines(); var appSettingLines = appSetting.GetLines();
for (var i = 0; i < appSettingLines.Length; i++) for (var i = 0; i < appSettingLines.Length; i++)
{ {
if (appSettingLines[i].Contains("DefaultPassPhrase") && appSettingLines[i].Contains(defaultPassPhrase)) if (appSettingLines[i].Contains("DefaultPassPhrase") && appSettingLines[i].Contains(DefaultPassPhrase))
{ {
appSettingLines[i] = appSettingLines[i].Replace(defaultPassPhrase, randomPassPhrase); appSettingLines[i] = appSettingLines[i].Replace(DefaultPassPhrase, randomPassPhrase);
} }
} }
@ -33,11 +34,11 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates
} }
} }
protected static string GetRandomString(int length) protected virtual string GetRandomPassPhrase(ProjectBuildContext context)
{ {
const string letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; const string letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
var builder = new StringBuilder(); var builder = new StringBuilder();
for (var i = 0; i < length; i++) for (var i = 0; i < DefaultPassPhrase.Length; i++)
{ {
builder.Append(letters[RandomHelper.GetRandom(0, letters.Length)]); builder.Append(letters[RandomHelper.GetRandom(0, letters.Length)]);
} }

Loading…
Cancel
Save