diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs index 676b42081f..a672b0b563 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/NewCommand.cs @@ -98,6 +98,7 @@ public class NewCommand : ProjectCreationCommandBase, IConsoleCommand, ITransien Logger.LogInformation($"'{projectName}' has been successfully created to '{projectArgs.OutputFolder}'"); ConfigureNpmPackagesForTheme(projectArgs); + await CreateOpenIddictPfxFilesAsync(projectArgs); await RunGraphBuildForMicroserviceServiceTemplate(projectArgs); await CreateInitialMigrationsAsync(projectArgs); 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 3e83cd818d..54747e807e 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 @@ -16,6 +16,7 @@ using Volo.Abp.Cli.LIbs; using Volo.Abp.Cli.ProjectBuilding; using Volo.Abp.Cli.ProjectBuilding.Building; using Volo.Abp.Cli.ProjectBuilding.Events; +using Volo.Abp.Cli.ProjectBuilding.Templates; using Volo.Abp.Cli.ProjectBuilding.Templates.App; using Volo.Abp.Cli.ProjectBuilding.Templates.Microservice; using Volo.Abp.Cli.ProjectBuilding.Templates.Module; @@ -481,6 +482,34 @@ public abstract class ProjectCreationCommandBase await InitialMigrationCreator.CreateAsync(Path.GetDirectoryName(efCoreProjectPath), isLayeredTemplate); } + protected Task CreateOpenIddictPfxFilesAsync(ProjectBuildArgs projectArgs) + { + var modules = projectArgs.ExtraProperties[nameof(RandomizeAuthServerPassPhraseStep)].Split(Environment.NewLine); + foreach (var module in modules.Where(x => !string.IsNullOrWhiteSpace(x))) + { + var moduleDirectory = projectArgs.OutputFolder + module; + if (projectArgs.UiFramework != UiFramework.Angular) + { + moduleDirectory = moduleDirectory.Replace("/aspnet-core/", "/"); + } + + moduleDirectory = Path.GetDirectoryName(projectArgs.SolutionName.CompanyName == null + ? moduleDirectory.Replace("MyCompanyName.MyProjectName", projectArgs.SolutionName.ProjectName) + : moduleDirectory.Replace("MyCompanyName", projectArgs.SolutionName.CompanyName).Replace("MyProjectName", projectArgs.SolutionName.ProjectName)); + + if (Directory.Exists(moduleDirectory)) + { + CmdHelper.RunCmd($"dotnet dev-certs https -v -ep openiddict.pfx -p {RandomizeAuthServerPassPhraseStep.RandomPassPhrase}", moduleDirectory); + } + else + { + Logger.LogWarning($"Couldn't find the module directory to create openiddict.pfx file: {moduleDirectory}"); + } + } + + return Task.CompletedTask; + } + protected async Task ConfigurePwaSupportForAngular(ProjectBuildArgs projectArgs) { var isAngular = projectArgs.UiFramework == UiFramework.Angular; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs index 7d42977c97..f2d5a3cf28 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeAuthServerPassPhraseStep.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Linq; using Volo.Abp.Cli.ProjectBuilding.Building; @@ -8,6 +9,8 @@ public class RandomizeAuthServerPassPhraseStep : ProjectBuildPipelineStep { protected const string DefaultPassPhrase = "00000000-0000-0000-0000-000000000000"; + public readonly static string RandomPassPhrase = Guid.NewGuid().ToString("D"); + public override void Execute(ProjectBuildContext context) { var files = context.Files @@ -15,7 +18,7 @@ public class RandomizeAuthServerPassPhraseStep : ProjectBuildPipelineStep .Where(x => x.Content.IndexOf(DefaultPassPhrase, StringComparison.InvariantCultureIgnoreCase) >= 0) .ToList(); - var randomPassPhrase = Guid.NewGuid().ToString("D"); + var modules = new List(); foreach (var file in files) { file.NormalizeLineEndings(); @@ -25,11 +28,19 @@ public class RandomizeAuthServerPassPhraseStep : ProjectBuildPipelineStep { if (lines[i].Contains(DefaultPassPhrase)) { - lines[i] = lines[i].Replace(DefaultPassPhrase, randomPassPhrase); + lines[i] = lines[i].Replace(DefaultPassPhrase, RandomPassPhrase); + if (file.Name.EndsWith("Module.cs", StringComparison.OrdinalIgnoreCase) && + file.Content.Contains("openiddict.pfx", StringComparison.OrdinalIgnoreCase)) + { + modules.Add(file.Name); + } } } file.SetLines(lines); } + + context.BuildArgs.ExtraProperties.TryAdd(nameof(RandomizeAuthServerPassPhraseStep), string.Empty); + context.BuildArgs.ExtraProperties[nameof(RandomizeAuthServerPassPhraseStep)] += modules.JoinAsString(Environment.NewLine); } } diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Microsoft/Extensions/DependencyInjection/OpenIddictServerBuilderExtensions.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Microsoft/Extensions/DependencyInjection/OpenIddictServerBuilderExtensions.cs new file mode 100644 index 0000000000..2762ac438d --- /dev/null +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Microsoft/Extensions/DependencyInjection/OpenIddictServerBuilderExtensions.cs @@ -0,0 +1,26 @@ +using System.IO; +using System.Security.Cryptography.X509Certificates; +using Volo.Abp.OpenIddict; + +namespace Microsoft.Extensions.DependencyInjection; + +public static class OpenIddictServerBuilderExtensions +{ + public static OpenIddictServerBuilder AddProductionEncryptionAndSigningCertificate(this OpenIddictServerBuilder builder, string fileName, string passPhrase) + { + builder.Services.PreConfigure(options => + { + options.AddDevelopmentEncryptionAndSigningCertificate = false; + }); + + if (!File.Exists(fileName)) + { + throw new FileNotFoundException($"Signing Certificate couldn't found: {fileName}"); + } + + var certificate = new X509Certificate2(fileName, passPhrase); + builder.AddSigningCertificate(certificate); + builder.AddEncryptionCertificate(certificate); + return builder; + } +} diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj index 06e7905bc9..5d79199f42 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyCompanyName.MyProjectName.Blazor.Server.Mongo.csproj @@ -90,6 +90,10 @@ + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs index e088b4a84f..e15d976cbd 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/MyProjectNameModule.cs @@ -111,6 +111,9 @@ public class MyProjectNameModule : AbpModule public override void PreConfigureServices(ServiceConfigurationContext context) { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + context.Services.PreConfigure(options => { options.AddAssemblyResource( @@ -119,15 +122,23 @@ public class MyProjectNameModule : AbpModule ); }); - PreConfigure(builder => - { - builder.AddValidation(options => - { - options.AddAudiences("MyProjectName"); - options.UseLocalServer(); - options.UseAspNetCore(); - }); - }); + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); + }); + } + }); } public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index 5ddc04cc03..08d953b32c 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -98,6 +98,10 @@ + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs index b0953ae2eb..68c2a7aeaf 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameModule.cs @@ -113,6 +113,9 @@ public class MyProjectNameModule : AbpModule public override void PreConfigureServices(ServiceConfigurationContext context) { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + context.Services.PreConfigure(options => { options.AddAssemblyResource( @@ -121,15 +124,23 @@ public class MyProjectNameModule : AbpModule ); }); - PreConfigure(builder => - { - builder.AddValidation(options => - { - options.AddAudiences("MyProjectName"); - options.UseLocalServer(); - options.UseAspNetCore(); - }); - }); + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); + }); + } + }); } public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj index b35c2f4409..bf10276680 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.Mongo.csproj @@ -86,6 +86,10 @@ + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameHostModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameHostModule.cs index ca98281863..5afe99d918 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameHostModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server.Mongo/MyProjectNameHostModule.cs @@ -99,6 +99,9 @@ public class MyProjectNameHostModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + context.Services.PreConfigure(options => { options.AddAssemblyResource( @@ -106,15 +109,23 @@ public class MyProjectNameHostModule : AbpModule ); }); - PreConfigure(builder => - { - builder.AddValidation(options => - { - options.AddAudiences("MyProjectName"); - options.UseLocalServer(); - options.UseAspNetCore(); - }); - }); + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); + }); + } + }); } public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj index 23b7888885..de4847b621 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyCompanyName.MyProjectName.Blazor.WebAssembly.Server.csproj @@ -94,6 +94,10 @@ + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameHostModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameHostModule.cs index 000fbd1e38..2b35b5a910 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameHostModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.WebAssembly/Server/MyProjectNameHostModule.cs @@ -102,6 +102,9 @@ public class MyProjectNameHostModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + context.Services.PreConfigure(options => { options.AddAssemblyResource( @@ -109,15 +112,23 @@ public class MyProjectNameHostModule : AbpModule ); }); - PreConfigure(builder => - { - builder.AddValidation(options => - { - options.AddAudiences("MyProjectName"); - options.UseLocalServer(); - options.UseAspNetCore(); - }); - }); + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); + }); + } + }); } public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj index e0fcdbe948..b9a31de30b 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyCompanyName.MyProjectName.Host.Mongo.csproj @@ -82,6 +82,10 @@ + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs index 400e865d1d..22cdc9d3e2 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/MyProjectNameModule.cs @@ -100,6 +100,9 @@ public class MyProjectNameModule : AbpModule public override void PreConfigureServices(ServiceConfigurationContext context) { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + context.Services.PreConfigure(options => { options.AddAssemblyResource( @@ -107,15 +110,23 @@ public class MyProjectNameModule : AbpModule ); }); - PreConfigure(builder => - { - builder.AddValidation(options => - { - options.AddAudiences("MyProjectName"); - options.UseLocalServer(); - options.UseAspNetCore(); - }); - }); + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); + }); + } + }); } public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj index e129b4c456..3ad797051f 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj @@ -90,6 +90,10 @@ + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs index 792e93fe86..0accbf476b 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs @@ -103,6 +103,9 @@ public class MyProjectNameModule : AbpModule public override void PreConfigureServices(ServiceConfigurationContext context) { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + context.Services.PreConfigure(options => { options.AddAssemblyResource( @@ -110,15 +113,23 @@ public class MyProjectNameModule : AbpModule ); }); - PreConfigure(builder => - { - builder.AddValidation(options => - { - options.AddAudiences("MyProjectName"); - options.UseLocalServer(); - options.UseAspNetCore(); - }); - }); + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); + }); + } + }); } public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj index 8de870097d..488463868b 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyCompanyName.MyProjectName.Mvc.Mongo.csproj @@ -85,6 +85,10 @@ + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs index f097d8d434..ded5f4867d 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/MyProjectNameModule.cs @@ -106,6 +106,9 @@ public class MyProjectNameModule : AbpModule public override void PreConfigureServices(ServiceConfigurationContext context) { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + context.Services.PreConfigure(options => { options.AddAssemblyResource( @@ -113,15 +116,23 @@ public class MyProjectNameModule : AbpModule ); }); - PreConfigure(builder => - { - builder.AddValidation(options => - { - options.AddAudiences("MyProjectName"); - options.UseLocalServer(); - options.UseAspNetCore(); - }); - }); + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); + }); + } + }); } public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj index 836102dfc1..380b00e331 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyCompanyName.MyProjectName.Mvc.csproj @@ -93,6 +93,10 @@ + + + + diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs index 8b661a5d76..1cb8d45754 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs @@ -108,6 +108,9 @@ public class MyProjectNameModule : AbpModule public override void PreConfigureServices(ServiceConfigurationContext context) { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + context.Services.PreConfigure(options => { options.AddAssemblyResource( @@ -115,15 +118,23 @@ public class MyProjectNameModule : AbpModule ); }); - PreConfigure(builder => - { - builder.AddValidation(options => - { - options.AddAudiences("MyProjectName"); - options.UseLocalServer(); - options.UseAspNetCore(); - }); - }); + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("MyProjectName"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); + }); + } + }); } public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj index d55f24752d..75169de542 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyCompanyName.MyProjectName.AuthServer.csproj @@ -31,6 +31,10 @@ + + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs index b044af0d06..0ed35bb9b9 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs @@ -52,6 +52,9 @@ public class MyProjectNameAuthServerModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + PreConfigure(builder => { builder.AddValidation(options => @@ -60,6 +63,14 @@ public class MyProjectNameAuthServerModule : AbpModule options.UseLocalServer(); options.UseAspNetCore(); }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); + }); + } }); } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj index e97bb32a25..281777931d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj @@ -45,6 +45,10 @@ + + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs index 758b60f74e..4d76b6dd1d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorModule.cs @@ -62,6 +62,9 @@ public class MyProjectNameBlazorModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + context.Services.PreConfigure(options => { options.AddAssemblyResource( @@ -82,6 +85,14 @@ public class MyProjectNameBlazorModule : AbpModule options.UseLocalServer(); options.UseAspNetCore(); }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); + }); + } }); } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index 989e9e585c..c7ecae8534 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -31,6 +31,10 @@ + + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs index 18863a59ff..5f97dcf240 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs @@ -57,6 +57,9 @@ public class MyProjectNameWebModule : AbpModule { public override void PreConfigureServices(ServiceConfigurationContext context) { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + context.Services.PreConfigure(options => { options.AddAssemblyResource( @@ -77,6 +80,14 @@ public class MyProjectNameWebModule : AbpModule options.UseLocalServer(); options.UseAspNetCore(); }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000"); + }); + } }); }