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..cf697fd899 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,36 @@ public abstract class ProjectCreationCommandBase
await InitialMigrationCreator.CreateAsync(Path.GetDirectoryName(efCoreProjectPath), isLayeredTemplate);
}
+ protected Task CreateOpenIddictPfxFilesAsync(ProjectBuildArgs projectArgs)
+ {
+ var module = projectArgs.ExtraProperties[nameof(RandomizeAuthServerPassPhraseStep)];
+ if (string.IsNullOrWhiteSpace(module))
+ {
+ return Task.CompletedTask;
+ }
+
+ 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))
+ {
+ Logger.LogInformation($"Creating openiddict.pfx file on {moduleDirectory}");
+ CmdHelper.RunCmd($"dotnet dev-certs https -ep openiddict.pfx -p {RandomizeAuthServerPassPhraseStep.RandomOpenIddictPassword}", 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..a41c870f41 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;
@@ -6,16 +7,30 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates;
public class RandomizeAuthServerPassPhraseStep : ProjectBuildPipelineStep
{
- protected const string DefaultPassPhrase = "00000000-0000-0000-0000-000000000000";
+ private const string DefaultPassword = "00000000-0000-0000-0000-000000000000";
+ private const string KestrelCertificatesDefaultPassword = "Kestrel__Certificates__Default__Password=00000000-0000-0000-0000-000000000000";
+ private const string LocalhostPfx = "localhost.pfx -p 00000000-0000-0000-0000-000000000000";
+ private const string DotnetDevCerts = "openiddict.pfx -p 00000000-0000-0000-0000-000000000000";
+ private const string ProductionEncryptionAndSigningCertificate = "AddProductionEncryptionAndSigningCertificate(\"openiddict.pfx\", \"00000000-0000-0000-0000-000000000000\");";
+ private readonly static string RandomPassword = Guid.NewGuid().ToString("D");
+ public readonly static string RandomOpenIddictPassword = Guid.NewGuid().ToString("D");
public override void Execute(ProjectBuildContext context)
{
var files = context.Files
.Where(x => !x.IsDirectory)
- .Where(x => x.Content.IndexOf(DefaultPassPhrase, StringComparison.InvariantCultureIgnoreCase) >= 0)
+ .Where(x => x.Name.EndsWith(".cs") ||
+ x.Name.EndsWith(".json") ||
+ x.Name.EndsWith(".yml") ||
+ x.Name.EndsWith(".yaml") ||
+ x.Name.EndsWith(".md") ||
+ x.Name.EndsWith(".ps1") ||
+ x.Name.EndsWith(".sh") ||
+ x.Name.Contains("Dockerfile"))
+ .Where(x => x.Content.IndexOf(DefaultPassword, StringComparison.InvariantCultureIgnoreCase) >= 0)
.ToList();
- var randomPassPhrase = Guid.NewGuid().ToString("D");
+ string module = null;
foreach (var file in files)
{
file.NormalizeLineEndings();
@@ -23,13 +38,43 @@ public class RandomizeAuthServerPassPhraseStep : ProjectBuildPipelineStep
var lines = file.GetLines();
for (var i = 0; i < lines.Length; i++)
{
- if (lines[i].Contains(DefaultPassPhrase))
+ if (lines[i].Contains(KestrelCertificatesDefaultPassword))
{
- lines[i] = lines[i].Replace(DefaultPassPhrase, randomPassPhrase);
+ lines[i] = lines[i].Replace(KestrelCertificatesDefaultPassword,
+ KestrelCertificatesDefaultPassword.Replace(DefaultPassword,
+ RandomPassword));
+ }
+
+ if (lines[i].Contains(LocalhostPfx))
+ {
+ lines[i] = lines[i].Replace(LocalhostPfx,
+ LocalhostPfx.Replace(DefaultPassword,
+ RandomPassword));
+ }
+
+ if (lines[i].Contains(DotnetDevCerts))
+ {
+ lines[i] = lines[i].Replace(DotnetDevCerts,
+ DotnetDevCerts.Replace(DefaultPassword,
+ RandomOpenIddictPassword));
+ }
+
+ if (lines[i].Contains(ProductionEncryptionAndSigningCertificate))
+ {
+ lines[i] = lines[i].Replace(ProductionEncryptionAndSigningCertificate,
+ ProductionEncryptionAndSigningCertificate.Replace(DefaultPassword,
+ RandomOpenIddictPassword));
+
+ module = file.Name;
}
}
file.SetLines(lines);
}
+
+ if (!module.IsNullOrWhiteSpace())
+ {
+ context.BuildArgs.ExtraProperties[nameof(RandomizeAuthServerPassPhraseStep)] = module;
+ }
}
}
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..c99ce5e245
--- /dev/null
+++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Microsoft/Extensions/DependencyInjection/OpenIddictServerBuilderExtensions.cs
@@ -0,0 +1,20 @@
+using System.IO;
+using System.Security.Cryptography.X509Certificates;
+
+namespace Microsoft.Extensions.DependencyInjection;
+
+public static class OpenIddictServerBuilderExtensions
+{
+ public static OpenIddictServerBuilder AddProductionEncryptionAndSigningCertificate(this OpenIddictServerBuilder builder, string fileName, string passPhrase)
+ {
+ 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 c532ed66a7..43bfef36f3 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,13 @@
+
+
+
+ Always
+
+
+
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..faf7121dfc 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
@@ -46,6 +46,7 @@ using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement;
using Volo.Abp.TenantManagement.Blazor.Server;
using Volo.Abp.TenantManagement.MongoDB;
+using Volo.Abp.OpenIddict;
using Volo.Abp.UI.Navigation;
using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.Uow;
@@ -111,6 +112,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 +123,28 @@ 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(options =>
+ {
+ options.AddDevelopmentEncryptionAndSigningCertificate = false;
+ });
+
+ 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 8069d64ba1..b90b243add 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,13 @@
+
+
+
+ Always
+
+
+
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..d73ba01a49 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
@@ -48,6 +48,7 @@ using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement;
using Volo.Abp.TenantManagement.Blazor.Server;
using Volo.Abp.TenantManagement.EntityFrameworkCore;
+using Volo.Abp.OpenIddict;
using Volo.Abp.UI.Navigation;
using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.Validation.Localization;
@@ -113,6 +114,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 +125,28 @@ 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(options =>
+ {
+ options.AddDevelopmentEncryptionAndSigningCertificate = false;
+ });
+
+ 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 0f2017bc4a..05e9c4c61a 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,13 @@
+
+
+
+ Always
+
+
+
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..f5160169d4 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
@@ -40,6 +40,7 @@ using Volo.Abp.SettingManagement.MongoDB;
using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement;
using Volo.Abp.TenantManagement.MongoDB;
+using Volo.Abp.OpenIddict;
using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.Uow;
using Volo.Abp.VirtualFileSystem;
@@ -99,6 +100,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 +110,28 @@ 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(options =>
+ {
+ options.AddDevelopmentEncryptionAndSigningCertificate = false;
+ });
+
+ 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 24b18c1e8b..88c4e51db6 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,13 @@
+
+
+
+ Always
+
+
+
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..b76933ce94 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
@@ -42,6 +42,7 @@ using Volo.Abp.SettingManagement.EntityFrameworkCore;
using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement;
using Volo.Abp.TenantManagement.EntityFrameworkCore;
+using Volo.Abp.OpenIddict;
using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.Uow;
using Volo.Abp.VirtualFileSystem;
@@ -102,6 +103,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 +113,28 @@ 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(options =>
+ {
+ options.AddDevelopmentEncryptionAndSigningCertificate = false;
+ });
+
+ 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 1453b82848..0c8b18bcef 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,13 @@
+
+
+
+ Always
+
+
+
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..7a99e10635 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
@@ -40,6 +40,7 @@ using Volo.Abp.SettingManagement.MongoDB;
using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement;
using Volo.Abp.TenantManagement.MongoDB;
+using Volo.Abp.OpenIddict;
using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.Uow;
using Volo.Abp.Validation.Localization;
@@ -100,6 +101,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 +111,28 @@ 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(options =>
+ {
+ options.AddDevelopmentEncryptionAndSigningCertificate = false;
+ });
+
+ 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 817ab98cde..e12f10ec2c 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,13 @@
+
+
+
+ Always
+
+
+
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..6705902ed4 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/MyProjectNameModule.cs
@@ -43,6 +43,7 @@ using Volo.Abp.SettingManagement.EntityFrameworkCore;
using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement;
using Volo.Abp.TenantManagement.EntityFrameworkCore;
+using Volo.Abp.OpenIddict;
using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.Validation.Localization;
using Volo.Abp.VirtualFileSystem;
@@ -103,6 +104,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 +114,28 @@ 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(options =>
+ {
+ options.AddDevelopmentEncryptionAndSigningCertificate = false;
+ });
+
+ 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 0d374b477d..64ac6883ee 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,13 @@
+
+
+
+ Always
+
+
+
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..6e702fd36c 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
@@ -42,6 +42,7 @@ using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement;
using Volo.Abp.TenantManagement.MongoDB;
using Volo.Abp.TenantManagement.Web;
+using Volo.Abp.OpenIddict;
using Volo.Abp.UI.Navigation;
using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.Uow;
@@ -106,6 +107,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 +117,28 @@ 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(options =>
+ {
+ options.AddDevelopmentEncryptionAndSigningCertificate = false;
+ });
+
+ 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 71f3f1b1fb..c9c96a9944 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,13 @@
+
+
+
+ Always
+
+
+
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..43c60fc6a7 100644
--- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs
+++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/MyProjectNameModule.cs
@@ -44,6 +44,7 @@ using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement;
using Volo.Abp.TenantManagement.EntityFrameworkCore;
using Volo.Abp.TenantManagement.Web;
+using Volo.Abp.OpenIddict;
using Volo.Abp.UI.Navigation;
using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.Validation.Localization;
@@ -108,6 +109,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 +119,28 @@ 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(options =>
+ {
+ options.AddDevelopmentEncryptionAndSigningCertificate = false;
+ });
+
+ 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 75be19812e..0de7423714 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,13 @@
+
+
+
+ Always
+
+
+
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..104fe9fed6 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.AuthServer/MyProjectNameAuthServerModule.cs
@@ -31,6 +31,7 @@ using Volo.Abp.Caching.StackExchangeRedis;
using Volo.Abp.DistributedLocking;
using Volo.Abp.Localization;
using Volo.Abp.Modularity;
+using Volo.Abp.OpenIddict;
using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.UI;
using Volo.Abp.VirtualFileSystem;
@@ -52,6 +53,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 =>
@@ -61,6 +65,19 @@ public class MyProjectNameAuthServerModule : AbpModule
options.UseAspNetCore();
});
});
+
+ if (!hostingEnvironment.IsDevelopment())
+ {
+ PreConfigure(options =>
+ {
+ options.AddDevelopmentEncryptionAndSigningCertificate = false;
+ });
+
+ 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.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj
index a7429d100a..b03010ada9 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,13 @@
+
+
+
+ Always
+
+
+
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..e13c32cbf4 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
@@ -37,6 +37,7 @@ using Volo.Abp.Modularity;
using Volo.Abp.SettingManagement.Blazor.Server;
using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement.Blazor.Server;
+using Volo.Abp.OpenIddict;
using Volo.Abp.UI;
using Volo.Abp.UI.Navigation;
using Volo.Abp.UI.Navigation.Urls;
@@ -62,6 +63,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(
@@ -83,6 +87,19 @@ public class MyProjectNameBlazorModule : AbpModule
options.UseAspNetCore();
});
});
+
+ if (!hostingEnvironment.IsDevelopment())
+ {
+ PreConfigure(options =>
+ {
+ options.AddDevelopmentEncryptionAndSigningCertificate = false;
+ });
+
+ 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.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj
index 989e9e585c..c9231c1e0e 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,13 @@
+
+
+
+ Always
+
+
+
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..f9c8d6a1c2 100644
--- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs
+++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs
@@ -33,6 +33,7 @@ using Volo.Abp.PermissionManagement.Web;
using Volo.Abp.SettingManagement.Web;
using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement.Web;
+using Volo.Abp.OpenIddict;
using Volo.Abp.UI.Navigation.Urls;
using Volo.Abp.UI;
using Volo.Abp.UI.Navigation;
@@ -57,6 +58,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(
@@ -78,6 +82,19 @@ public class MyProjectNameWebModule : AbpModule
options.UseAspNetCore();
});
});
+
+ if (!hostingEnvironment.IsDevelopment())
+ {
+ PreConfigure(options =>
+ {
+ options.AddDevelopmentEncryptionAndSigningCertificate = false;
+ });
+
+ PreConfigure(serverBuilder =>
+ {
+ serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", "00000000-0000-0000-0000-000000000000");
+ });
+ }
}
public override void ConfigureServices(ServiceConfigurationContext context)