Remove the UseVault and use the existance of the section

This commit is contained in:
David Fowler 2023-05-03 08:07:50 -07:00 committed by Reuben Bond
parent 48f640088b
commit bff808016e
3 changed files with 40 additions and 36 deletions

View File

@ -19,12 +19,6 @@
"ApplicationInsights": { "ApplicationInsights": {
"InstrumentationKey": "" "InstrumentationKey": ""
}, },
"UseVault": false,
"Vault": {
"Name": "eshop",
"ClientId": "your-client-id",
"ClientSecret": "your-client-secret"
},
"OpenApi": { "OpenApi": {
"Endpoint": { "Endpoint": {
"Name": "" "Name": ""

View File

@ -17,12 +17,6 @@
"ApplicationInsights": { "ApplicationInsights": {
"InstrumentationKey": "" "InstrumentationKey": ""
}, },
"UseVault": false,
"Vault": {
"Name": "eshop",
"ClientId": "your-client-id",
"ClientSecret": "your-client-secret"
},
"OpenApi": { "OpenApi": {
"Endpoint": { "Endpoint": {
"Name": "" "Name": ""

View File

@ -1,5 +1,6 @@
using System.IdentityModel.Tokens.Jwt; using System.IdentityModel.Tokens.Jwt;
using System.Net; using System.Net;
using Autofac.Core;
using Azure.Identity; using Azure.Identity;
using HealthChecks.UI.Client; using HealthChecks.UI.Client;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
@ -79,6 +80,13 @@ public static class CommonExtensions
public static IApplicationBuilder UseDefaultOpenApi(this IApplicationBuilder app, IConfiguration configuration) public static IApplicationBuilder UseDefaultOpenApi(this IApplicationBuilder app, IConfiguration configuration)
{ {
var openApiSection = configuration.GetRequiredSection("OpenApi");
if (!openApiSection.Exists())
{
return app;
}
app.UseSwagger(); app.UseSwagger();
app.UseSwaggerUI(setup => app.UseSwaggerUI(setup =>
{ {
@ -95,7 +103,6 @@ public static class CommonExtensions
/// } /// }
var pathBase = configuration["PATH_BASE"]; var pathBase = configuration["PATH_BASE"];
var openApiSection = configuration.GetRequiredSection("OpenApi");
var authSection = openApiSection.GetSection("Auth"); var authSection = openApiSection.GetSection("Auth");
var endpointSection = openApiSection.GetRequiredSection("Endpoint"); var endpointSection = openApiSection.GetRequiredSection("Endpoint");
@ -113,11 +120,17 @@ public static class CommonExtensions
return app; return app;
} }
public static IServiceCollection AddDefaultOpenApi(this IServiceCollection services, IConfiguration configuration) => public static IServiceCollection AddDefaultOpenApi(this IServiceCollection services, IConfiguration configuration)
services.AddSwaggerGen(options => {
{ var openApi = configuration.GetRequiredSection("OpenApi");
var openApi = configuration.GetRequiredSection("OpenApi");
if (!openApi.Exists())
{
return services;
}
return services.AddSwaggerGen(options =>
{
/// { /// {
/// "OpenApi": { /// "OpenApi": {
/// "Document": { /// "Document": {
@ -174,6 +187,7 @@ public static class CommonExtensions
options.OperationFilter<AuthorizeCheckOperationFilter>(); options.OperationFilter<AuthorizeCheckOperationFilter>();
}); });
}
public static IServiceCollection AddDefaultAuthentication(this IServiceCollection services, IConfiguration configuration) public static IServiceCollection AddDefaultAuthentication(this IServiceCollection services, IConfiguration configuration)
{ {
@ -243,28 +257,30 @@ public static class CommonExtensions
public static ConfigurationManager AddKeyVault(this ConfigurationManager configuration) public static ConfigurationManager AddKeyVault(this ConfigurationManager configuration)
{ {
if (configuration.GetValue("UseVault", false)) // {
// "Vault": {
// "Name": "myvault",
// "TenantId": "mytenantid",
// "ClientId": "myclientid",
// }
// }
var vaultSection = configuration.GetSection("Vault");
if (!vaultSection.Exists())
{ {
// { return configuration;
// "Vault": {
// "Name": "myvault",
// "TenantId": "mytenantid",
// "ClientId": "myclientid",
// }
// }
var vaultSection = configuration.GetRequiredSection("Vault");
var credential = new ClientSecretCredential(
vaultSection.GetRequiredValue("TenantId"),
vaultSection.GetRequiredValue("ClientId"),
vaultSection.GetRequiredValue("ClientSecret"));
var name = vaultSection.GetRequiredValue("Name");
configuration.AddAzureKeyVault(new Uri($"https://{name}.vault.azure.net/"), credential);
} }
var credential = new ClientSecretCredential(
vaultSection.GetRequiredValue("TenantId"),
vaultSection.GetRequiredValue("ClientId"),
vaultSection.GetRequiredValue("ClientSecret"));
var name = vaultSection.GetRequiredValue("Name");
configuration.AddAzureKeyVault(new Uri($"https://{name}.vault.azure.net/"), credential);
return configuration; return configuration;
} }