Browse Source

Make RequireHttpsMetaData configurable for app template. volosoft/volo#3470

pull/5764/head
Alper Ebicoglu 6 years ago
parent
commit
3ebf52e4c4
  1. 32
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs
  2. 3
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json
  3. 32
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs
  4. 3
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json
  5. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs
  6. 1
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json
  7. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs
  8. 3
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json

32
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyProjectNameHttpApiHostModule.cs

@ -35,7 +35,7 @@ namespace MyCompanyName.MyProjectName
typeof(MyProjectNameApplicationModule), typeof(MyProjectNameApplicationModule),
typeof(MyProjectNameEntityFrameworkCoreDbMigrationsModule), typeof(MyProjectNameEntityFrameworkCoreDbMigrationsModule),
typeof(AbpAspNetCoreSerilogModule) typeof(AbpAspNetCoreSerilogModule)
)] )]
public class MyProjectNameHttpApiHostModule : AbpModule public class MyProjectNameHttpApiHostModule : AbpModule
{ {
private const string DefaultCorsPolicyName = "Default"; private const string DefaultCorsPolicyName = "Default";
@ -57,10 +57,7 @@ namespace MyCompanyName.MyProjectName
private void ConfigureCache(IConfiguration configuration) private void ConfigureCache(IConfiguration configuration)
{ {
Configure<AbpDistributedCacheOptions>(options => Configure<AbpDistributedCacheOptions>(options => { options.KeyPrefix = "MyProjectName:"; });
{
options.KeyPrefix = "MyProjectName:";
});
} }
private void ConfigureVirtualFileSystem(ServiceConfigurationContext context) private void ConfigureVirtualFileSystem(ServiceConfigurationContext context)
@ -71,10 +68,18 @@ namespace MyCompanyName.MyProjectName
{ {
Configure<AbpVirtualFileSystemOptions>(options => Configure<AbpVirtualFileSystemOptions>(options =>
{ {
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameDomainSharedModule>(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain.Shared")); options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameDomainSharedModule>(
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameDomainModule>(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain")); Path.Combine(hostingEnvironment.ContentRootPath,
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameApplicationContractsModule>(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Application.Contracts")); $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain.Shared"));
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameApplicationModule>(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Application")); options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameDomainModule>(
Path.Combine(hostingEnvironment.ContentRootPath,
$"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain"));
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameApplicationContractsModule>(
Path.Combine(hostingEnvironment.ContentRootPath,
$"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Application.Contracts"));
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameApplicationModule>(
Path.Combine(hostingEnvironment.ContentRootPath,
$"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Application"));
}); });
} }
} }
@ -93,7 +98,7 @@ namespace MyCompanyName.MyProjectName
.AddJwtBearer(options => .AddJwtBearer(options =>
{ {
options.Authority = configuration["AuthServer:Authority"]; options.Authority = configuration["AuthServer:Authority"];
options.RequireHttpsMetadata = true; options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]);
options.Audience = "MyProjectName"; options.Audience = "MyProjectName";
}); });
} }
@ -191,14 +196,11 @@ namespace MyCompanyName.MyProjectName
app.UseAuthorization(); app.UseAuthorization();
app.UseSwagger(); app.UseSwagger();
app.UseSwaggerUI(options => app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API"); });
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API");
});
app.UseAuditing(); app.UseAuditing();
app.UseAbpSerilogEnrichers(); app.UseAbpSerilogEnrichers();
app.UseConfiguredEndpoints(); app.UseConfiguredEndpoints();
} }
} }
} }

3
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json

@ -9,7 +9,8 @@
"Configuration": "127.0.0.1" "Configuration": "127.0.0.1"
}, },
"AuthServer": { "AuthServer": {
"Authority": "https://localhost:44301" "Authority": "https://localhost:44301",
"RequireHttpsMetadata": "true"
}, },
"Settings": { "Settings": {
"Abp.Mailing.Smtp.Host": "127.0.0.1", "Abp.Mailing.Smtp.Host": "127.0.0.1",

32
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyProjectNameHttpApiHostModule.cs

@ -36,7 +36,7 @@ namespace MyCompanyName.MyProjectName
typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule),
typeof(AbpAccountWebIdentityServerModule), typeof(AbpAccountWebIdentityServerModule),
typeof(AbpAspNetCoreSerilogModule) typeof(AbpAspNetCoreSerilogModule)
)] )]
public class MyProjectNameHttpApiHostModule : AbpModule public class MyProjectNameHttpApiHostModule : AbpModule
{ {
private const string DefaultCorsPolicyName = "Default"; private const string DefaultCorsPolicyName = "Default";
@ -71,10 +71,18 @@ namespace MyCompanyName.MyProjectName
{ {
Configure<AbpVirtualFileSystemOptions>(options => Configure<AbpVirtualFileSystemOptions>(options =>
{ {
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameDomainSharedModule>(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain.Shared")); options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameDomainSharedModule>(
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameDomainModule>(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain")); Path.Combine(hostingEnvironment.ContentRootPath,
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameApplicationContractsModule>(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Application.Contracts")); $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain.Shared"));
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameApplicationModule>(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Application")); options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameDomainModule>(
Path.Combine(hostingEnvironment.ContentRootPath,
$"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Domain"));
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameApplicationContractsModule>(
Path.Combine(hostingEnvironment.ContentRootPath,
$"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Application.Contracts"));
options.FileSets.ReplaceEmbeddedByPhysical<MyProjectNameApplicationModule>(
Path.Combine(hostingEnvironment.ContentRootPath,
$"..{Path.DirectorySeparatorChar}MyCompanyName.MyProjectName.Application"));
}); });
} }
} }
@ -93,11 +101,12 @@ namespace MyCompanyName.MyProjectName
.AddJwtBearer(options => .AddJwtBearer(options =>
{ {
options.Authority = configuration["AuthServer:Authority"]; options.Authority = configuration["AuthServer:Authority"];
options.RequireHttpsMetadata = false; options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]);
options.Audience = "MyProjectName"; options.Audience = "MyProjectName";
options.BackchannelHttpHandler = new HttpClientHandler() options.BackchannelHttpHandler = new HttpClientHandler
{ {
ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator ServerCertificateCustomValidationCallback =
HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
}; };
}); });
} }
@ -183,14 +192,11 @@ namespace MyCompanyName.MyProjectName
app.UseAuthorization(); app.UseAuthorization();
app.UseSwagger(); app.UseSwagger();
app.UseSwaggerUI(options => app.UseSwaggerUI(options => { options.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API"); });
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "MyProjectName API");
});
app.UseAuditing(); app.UseAuditing();
app.UseAbpSerilogEnrichers(); app.UseAbpSerilogEnrichers();
app.UseConfiguredEndpoints(); app.UseConfiguredEndpoints();
} }
} }
} }

3
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json

@ -7,7 +7,8 @@
"Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName;Trusted_Connection=True;MultipleActiveResultSets=true" "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName;Trusted_Connection=True;MultipleActiveResultSets=true"
}, },
"AuthServer": { "AuthServer": {
"Authority": "https://localhost:44305" "Authority": "https://localhost:44305",
"RequireHttpsMetadata": "false"
}, },
"Settings": { "Settings": {
"Abp.Mailing.Smtp.Host": "127.0.0.1", "Abp.Mailing.Smtp.Host": "127.0.0.1",

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyProjectNameWebModule.cs

@ -130,7 +130,7 @@ namespace MyCompanyName.MyProjectName.Web
.AddAbpOpenIdConnect("oidc", options => .AddAbpOpenIdConnect("oidc", options =>
{ {
options.Authority = configuration["AuthServer:Authority"]; options.Authority = configuration["AuthServer:Authority"];
options.RequireHttpsMetadata = true; options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]);
options.ResponseType = OpenIdConnectResponseType.CodeIdToken; options.ResponseType = OpenIdConnectResponseType.CodeIdToken;
options.ClientId = configuration["AuthServer:ClientId"]; options.ClientId = configuration["AuthServer:ClientId"];

1
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json

@ -12,6 +12,7 @@
}, },
"AuthServer": { "AuthServer": {
"Authority": "https://localhost:44301", "Authority": "https://localhost:44301",
"RequireHttpsMetadata": "true",
"ClientId": "MyProjectName_Web", "ClientId": "MyProjectName_Web",
"ClientSecret": "1q2w3e*" "ClientSecret": "1q2w3e*"
} }

2
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyProjectNameWebModule.cs

@ -97,7 +97,7 @@ namespace MyCompanyName.MyProjectName.Web
.AddJwtBearer(options => .AddJwtBearer(options =>
{ {
options.Authority = configuration["AuthServer:Authority"]; options.Authority = configuration["AuthServer:Authority"];
options.RequireHttpsMetadata = false; options.RequireHttpsMetadata = Convert.ToBoolean(configuration["AuthServer:RequireHttpsMetadata"]);
options.Audience = "MyProjectName"; options.Audience = "MyProjectName";
}); });
} }

3
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json

@ -6,7 +6,8 @@
"Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName;Trusted_Connection=True;MultipleActiveResultSets=true" "Default": "Server=(LocalDb)\\MSSQLLocalDB;Database=MyProjectName;Trusted_Connection=True;MultipleActiveResultSets=true"
}, },
"AuthServer": { "AuthServer": {
"Authority": "https://localhost:44303" "Authority": "https://localhost:44303",
"RequireHttpsMetadata": "false"
}, },
"IdentityServer": { "IdentityServer": {
"Clients": { "Clients": {

Loading…
Cancel
Save