Small refactoring of the helper methods
This commit is contained in:
parent
8c2ca8dbd9
commit
0a07aea4ff
@ -2,21 +2,21 @@
|
|||||||
// Refer to https://github.com/dotnet-architecture/eShopOnContainers/issues/1391
|
// Refer to https://github.com/dotnet-architecture/eShopOnContainers/issues/1391
|
||||||
internal static class Extensions
|
internal static class Extensions
|
||||||
{
|
{
|
||||||
public static void AddHealthChecks(this WebApplicationBuilder builder)
|
public static void AddHealthChecks(this IServiceCollection services, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
builder.Services.AddHealthChecks()
|
services.AddHealthChecks()
|
||||||
.AddUrlGroup(_ => new Uri(builder.Configuration["IdentityUrlHC"]), name: "identityapi-check", tags: new string[] { "identityapi" });
|
.AddUrlGroup(_ => new Uri(configuration["IdentityUrlHC"]), name: "identityapi-check", tags: new string[] { "identityapi" });
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AddApplicationSevices(this WebApplicationBuilder builder)
|
public static void AddApplicationSevices(this IServiceCollection services, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
builder.Services.Configure<AppSettings>(builder.Configuration)
|
services.Configure<AppSettings>(configuration)
|
||||||
.AddSession()
|
.AddSession()
|
||||||
.AddDistributedMemoryCache();
|
.AddDistributedMemoryCache();
|
||||||
|
|
||||||
if (builder.Configuration["DPConnectionString"] is string redisConnection)
|
if (configuration["DPConnectionString"] is string redisConnection)
|
||||||
{
|
{
|
||||||
builder.Services.AddDataProtection(opts =>
|
services.AddDataProtection(opts =>
|
||||||
{
|
{
|
||||||
opts.ApplicationDiscriminator = "eshop.webmvc";
|
opts.ApplicationDiscriminator = "eshop.webmvc";
|
||||||
})
|
})
|
||||||
@ -25,39 +25,38 @@ internal static class Extensions
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Adds all Http client services
|
// Adds all Http client services
|
||||||
public static void AddHttpClientServices(this WebApplicationBuilder builder)
|
public static void AddHttpClientServices(this IServiceCollection services)
|
||||||
{
|
{
|
||||||
// Register delegating handlers
|
// Register delegating handlers
|
||||||
builder.Services.AddTransient<HttpClientAuthorizationDelegatingHandler>()
|
services.AddTransient<HttpClientAuthorizationDelegatingHandler>()
|
||||||
.AddTransient<HttpClientRequestIdDelegatingHandler>();
|
.AddTransient<HttpClientRequestIdDelegatingHandler>();
|
||||||
|
|
||||||
// Add http client services
|
// Add http client services
|
||||||
builder.Services.AddHttpClient<IBasketService, BasketService>()
|
services.AddHttpClient<IBasketService, BasketService>()
|
||||||
.SetHandlerLifetime(TimeSpan.FromMinutes(5)) //Sample. Default lifetime is 2 minutes
|
.SetHandlerLifetime(TimeSpan.FromMinutes(5)) //Sample. Default lifetime is 2 minutes
|
||||||
.AddHttpMessageHandler<HttpClientAuthorizationDelegatingHandler>();
|
.AddHttpMessageHandler<HttpClientAuthorizationDelegatingHandler>();
|
||||||
|
|
||||||
builder.Services.AddHttpClient<ICatalogService, CatalogService>();
|
services.AddHttpClient<ICatalogService, CatalogService>();
|
||||||
|
|
||||||
builder.Services.AddHttpClient<IOrderingService, OrderingService>()
|
services.AddHttpClient<IOrderingService, OrderingService>()
|
||||||
.AddHttpMessageHandler<HttpClientAuthorizationDelegatingHandler>()
|
.AddHttpMessageHandler<HttpClientAuthorizationDelegatingHandler>()
|
||||||
.AddHttpMessageHandler<HttpClientRequestIdDelegatingHandler>();
|
.AddHttpMessageHandler<HttpClientRequestIdDelegatingHandler>();
|
||||||
|
|
||||||
|
|
||||||
//add custom application services
|
//add custom application services
|
||||||
builder.Services.AddTransient<IIdentityParser<ApplicationUser>, IdentityParser>();
|
services.AddTransient<IIdentityParser<ApplicationUser>, IdentityParser>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void AddAuthenticationServices(this WebApplicationBuilder builder)
|
public static void AddAuthenticationServices(this IServiceCollection services, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub");
|
JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Remove("sub");
|
||||||
|
|
||||||
var identityUrl = builder.Configuration.GetRequiredValue("IdentityUrl");
|
var identityUrl = configuration.GetRequiredValue("IdentityUrl");
|
||||||
var callBackUrl = builder.Configuration.GetRequiredValue("CallBackUrl");
|
var callBackUrl = configuration.GetRequiredValue("CallBackUrl");
|
||||||
var sessionCookieLifetime = builder.Configuration.GetValue("SessionCookieLifetimeMinutes", 60);
|
var sessionCookieLifetime = configuration.GetValue("SessionCookieLifetimeMinutes", 60);
|
||||||
|
|
||||||
// Add Authentication services
|
// Add Authentication services
|
||||||
|
services.AddAuthentication(options =>
|
||||||
builder.Services.AddAuthentication(options =>
|
|
||||||
{
|
{
|
||||||
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
|
options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme;
|
||||||
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
|
options.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme;
|
||||||
|
@ -4,10 +4,10 @@ builder.AddServiceDefaults();
|
|||||||
|
|
||||||
builder.Services.AddControllersWithViews();
|
builder.Services.AddControllersWithViews();
|
||||||
|
|
||||||
builder.AddHealthChecks();
|
builder.Services.AddHealthChecks(builder.Configuration);
|
||||||
builder.AddApplicationSevices();
|
builder.Services.AddApplicationSevices(builder.Configuration);
|
||||||
builder.AddHttpClientServices();
|
builder.Services.AddAuthenticationServices(builder.Configuration);
|
||||||
builder.AddAuthenticationServices();
|
builder.Services.AddHttpClientServices();
|
||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
@ -20,11 +20,6 @@ app.UseSession();
|
|||||||
// Refer to https://github.com/dotnet-architecture/eShopOnContainers/issues/1391
|
// Refer to https://github.com/dotnet-architecture/eShopOnContainers/issues/1391
|
||||||
app.UseCookiePolicy(new CookiePolicyOptions { MinimumSameSitePolicy = SameSiteMode.Lax });
|
app.UseCookiePolicy(new CookiePolicyOptions { MinimumSameSitePolicy = SameSiteMode.Lax });
|
||||||
|
|
||||||
app.UseRouting();
|
|
||||||
|
|
||||||
app.UseAuthentication();
|
|
||||||
app.UseAuthorization();
|
|
||||||
|
|
||||||
app.MapControllerRoute("default", "{controller=Catalog}/{action=Index}/{id?}");
|
app.MapControllerRoute("default", "{controller=Catalog}/{action=Index}/{id?}");
|
||||||
app.MapControllerRoute("defaultError", "{controller=Error}/{action=Error}");
|
app.MapControllerRoute("defaultError", "{controller=Error}/{action=Error}");
|
||||||
app.MapControllers();
|
app.MapControllers();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user