From e5afdd1fe0b951971ef7cccf5e3b83558f969f4d Mon Sep 17 00:00:00 2001 From: Mark Cilia Vincenti Date: Fri, 16 Aug 2024 12:00:57 +0200 Subject: [PATCH] More fixes. --- .../ExceptionHandling/AbpExceptionFilter.cs | 2 +- .../AbpExceptionPageFilter.cs | 2 +- .../Commands/ProjectCreationCommandBase.cs | 6 +- .../Volo/Abp/Cli/Commands/TranslateCommand.cs | 2 +- .../Cli/ProjectBuilding/Files/FileEntry.cs | 2 + .../ProjectModification/NpmPackagesUpdater.cs | 6 +- .../ProjectNugetPackageAdder.cs | 4 +- .../SolutionModuleAdder.cs | 2 +- .../Encryption/StringEncryptionService.cs | 108 ++++++------------ 9 files changed, 50 insertions(+), 84 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs index d2abae0902..a9131b91ff 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionFilter.cs @@ -75,7 +75,7 @@ public class AbpExceptionFilter : IAsyncExceptionFilter, IAbpFilter, ITransientD } else { - context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true"); + context.HttpContext.Response.Headers.Append(AbpHttpConsts.AbpErrorFormat, "true"); context.HttpContext.Response.StatusCode = (int)context .GetRequiredService() .GetStatusCode(context.HttpContext, context.Exception); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs index f404f52e5d..b7c443b583 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ExceptionHandling/AbpExceptionPageFilter.cs @@ -103,7 +103,7 @@ public class AbpExceptionPageFilter : IAsyncPageFilter, IAbpFilter, ITransientDe } else { - context.HttpContext.Response.Headers.Add(AbpHttpConsts.AbpErrorFormat, "true"); + context.HttpContext.Response.Headers.Append(AbpHttpConsts.AbpErrorFormat, "true"); context.HttpContext.Response.StatusCode = (int)context .GetRequiredService() .GetStatusCode(context.HttpContext, context.Exception!); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs index 335f5faef4..8ee57440e2 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/ProjectCreationCommandBase.cs @@ -309,10 +309,7 @@ public abstract class ProjectCreationCommandBase bool isTiered, CommandLineArgs commandLineArgs) { - -#if DEBUG - return; -#endif +#if !DEBUG if (AppTemplateBase.IsAppTemplate(template)) { var isCommercial = template == AppProTemplate.TemplateName; @@ -322,6 +319,7 @@ public abstract class ProjectCreationCommandBase { OpenMicroserviceDocumentPage(); } +#endif } protected UiFramework FindMicroserviceSolutionUiFramework(string outputFolderRoot) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/TranslateCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/TranslateCommand.cs index f1482d5a85..0bf89db5c0 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/TranslateCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/TranslateCommand.cs @@ -490,7 +490,7 @@ public class TranslateCommand : IConsoleCommand, ITransientDependency var jsonString = File.ReadAllText(jsonFile); _ = JsonLocalizationDictionaryBuilder.BuildFromJsonString(jsonString); } - catch (Exception e) + catch (Exception) { Logger.LogError($"Invalid json file: {jsonFile}"); hasInvalidJsonFile = true; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntry.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntry.cs index c634f09fa8..6d3c261799 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntry.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Files/FileEntry.cs @@ -97,7 +97,9 @@ public class FileEntry if (Bytes[0] == 0x2b && Bytes[1] == 0x2f && Bytes[2] == 0x76) { +#pragma warning disable SYSLIB0001 // The UTF-7 encoding is insecure return Encoding.UTF7; +#pragma warning restore SYSLIB0001 // The UTF-7 encoding is insecure } if (Bytes[0] == 0xef && Bytes[1] == 0xbb && Bytes[2] == 0xbf) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs index fa47442514..019feb93d0 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs @@ -54,7 +54,7 @@ public class NpmPackagesUpdater : ITransientDependency { var fileList = _packageJsonFileFinder.Find(rootDirectory); - if (!fileList.Any()) + if (fileList.Count == 0) { return; } @@ -95,8 +95,8 @@ public class NpmPackagesUpdater : ITransientDependency if (!IsAngularProject(fileDirectory)) { - Thread.Sleep(1000); - RunInstallLibsAsync(fileDirectory); + await Task.Delay(1000); + await RunInstallLibsAsync(fileDirectory); } } } diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs index b0fde75ca5..9d9d7e159e 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/ProjectNugetPackageAdder.cs @@ -259,11 +259,11 @@ public class ProjectNugetPackageAdder : ITransientDependency if (useDotnetCliToInstall) { - AddUsingDotnetCli(package, version); + await AddUsingDotnetCli(package, version); } else { - AddToCsprojManuallyAsync(projectFile, package, version); + await AddToCsprojManuallyAsync(projectFile, package, version); } var moduleFiles = ModuleClassFinder.Find(projectFile, "AbpModule"); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs index ed5b40f717..abf0b1750a 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/SolutionModuleAdder.cs @@ -391,7 +391,7 @@ public class SolutionModuleAdder : ITransientDependency continue; } - RemoveProjectFromSolutionAsync(moduleSolutionFile, projectToRemove); + await RemoveProjectFromSolutionAsync(moduleSolutionFile, projectToRemove); } } diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Encryption/StringEncryptionService.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Encryption/StringEncryptionService.cs index e1e7e94b7a..c2fb7d8c9e 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Encryption/StringEncryptionService.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Encryption/StringEncryptionService.cs @@ -26,38 +26,21 @@ public class StringEncryptionService : IStringEncryptionService, ITransientDepen return null; } - if (passPhrase == null) - { - passPhrase = Options.DefaultPassPhrase; - } - - if (salt == null) - { - salt = Options.DefaultSalt; - } + passPhrase ??= Options.DefaultPassPhrase; + salt ??= Options.DefaultSalt; var plainTextBytes = Encoding.UTF8.GetBytes(plainText); - using (var password = new Rfc2898DeriveBytes(passPhrase, salt)) - { - var keyBytes = password.GetBytes(Options.Keysize / 8); - using (var symmetricKey = Aes.Create()) - { - symmetricKey.Mode = CipherMode.CBC; - using (var encryptor = symmetricKey.CreateEncryptor(keyBytes, Options.InitVectorBytes)) - { - using (var memoryStream = new MemoryStream()) - { - using (var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write)) - { - cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length); - cryptoStream.FlushFinalBlock(); - var cipherTextBytes = memoryStream.ToArray(); - return Convert.ToBase64String(cipherTextBytes); - } - } - } - } - } + using var password = new Rfc2898DeriveBytes(passPhrase, salt); + var keyBytes = password.GetBytes(Options.Keysize / 8); + using var symmetricKey = Aes.Create(); + symmetricKey.Mode = CipherMode.CBC; + using var encryptor = symmetricKey.CreateEncryptor(keyBytes, Options.InitVectorBytes); + using var memoryStream = new MemoryStream(); + using var cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write); + cryptoStream.Write(plainTextBytes, 0, plainTextBytes.Length); + cryptoStream.FlushFinalBlock(); + var cipherTextBytes = memoryStream.ToArray(); + return Convert.ToBase64String(cipherTextBytes); } public virtual string? Decrypt(string? cipherText, string? passPhrase = null, byte[]? salt = null) @@ -67,53 +50,36 @@ public class StringEncryptionService : IStringEncryptionService, ITransientDepen return null; } - if (passPhrase == null) - { - passPhrase = Options.DefaultPassPhrase; - } - - if (salt == null) - { - salt = Options.DefaultSalt; - } + passPhrase ??= Options.DefaultPassPhrase; + salt ??= Options.DefaultSalt; var cipherTextBytes = Convert.FromBase64String(cipherText); - using (var password = new Rfc2898DeriveBytes(passPhrase, salt)) + using var password = new Rfc2898DeriveBytes(passPhrase, salt); + var keyBytes = password.GetBytes(Options.Keysize / 8); + using var symmetricKey = Aes.Create(); + symmetricKey.Mode = CipherMode.CBC; + using var decryptor = symmetricKey.CreateDecryptor(keyBytes, Options.InitVectorBytes); + using var memoryStream = new MemoryStream(cipherTextBytes); + using var cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read); + var plainTextBytes = new byte[cipherTextBytes.Length]; + var totalReadCount = 0; + while (totalReadCount < cipherTextBytes.Length) { - var keyBytes = password.GetBytes(Options.Keysize / 8); - using (var symmetricKey = Aes.Create()) + var buffer = new byte[cipherTextBytes.Length]; + var readCount = cryptoStream.Read(buffer, 0, buffer.Length); + if (readCount == 0) { - symmetricKey.Mode = CipherMode.CBC; - using (var decryptor = symmetricKey.CreateDecryptor(keyBytes, Options.InitVectorBytes)) - { - using (var memoryStream = new MemoryStream(cipherTextBytes)) - { - using (var cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read)) - { - var plainTextBytes = new byte[cipherTextBytes.Length]; - var totalReadCount = 0; - while (totalReadCount < cipherTextBytes.Length) - { - var buffer = new byte[cipherTextBytes.Length]; - var readCount = cryptoStream.Read(buffer, 0, buffer.Length); - if (readCount == 0) - { - break; - } - - for (var i = 0; i < readCount; i++) - { - plainTextBytes[i + totalReadCount] = buffer[i]; - } - - totalReadCount += readCount; - } + break; + } - return Encoding.UTF8.GetString(plainTextBytes, 0, totalReadCount); - } - } - } + for (var i = 0; i < readCount; i++) + { + plainTextBytes[i + totalReadCount] = buffer[i]; } + + totalReadCount += readCount; } + + return Encoding.UTF8.GetString(plainTextBytes, 0, totalReadCount); } }