From d7b5f8b7775a7c623d4bcfa7015476f835aabfa2 Mon Sep 17 00:00:00 2001 From: ivarlovlie Date: Thu, 6 Aug 2020 23:28:30 +0200 Subject: server: start of ids4 impl --- src/server/Startup.cs | 45 ++++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) (limited to 'src/server/Startup.cs') diff --git a/src/server/Startup.cs b/src/server/Startup.cs index 4f0d467..f55a761 100644 --- a/src/server/Startup.cs +++ b/src/server/Startup.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Authentication.Cookies; +using Dough.IdentityServer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.EntityFrameworkCore; @@ -6,10 +6,9 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Dough.Models; -using Dough.Utilities; using Dough.Models.Database; -using Microsoft.AspNetCore.CookiePolicy; using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; namespace Dough { @@ -21,7 +20,8 @@ namespace Dough } public IConfiguration Configuration { get; } - private const string MainCorsPolicy = "MainCorsPolicy"; + + private const string DefaultCorsPolicy = "DefaultCorsPolicy"; private string GetConnectionStringFromEnvironment() { @@ -38,33 +38,35 @@ namespace Dough services.AddCors(options => { - options.AddPolicy(MainCorsPolicy, builder => + options.AddPolicy(DefaultCorsPolicy, builder => { builder + .WithOrigins(Constants.BrowserAppUrls) .AllowAnyHeader() .AllowAnyMethod() - .AllowCredentials() - .WithOrigins("http://localhost:8080"); + .AllowCredentials(); }); }); + services.AddHealthChecks() + .AddDbContextCheck(); + services.AddDbContext(options => { options.UseMySql(GetConnectionStringFromEnvironment()); }); + + services.Configure(options => + { + options.SuppressModelStateInvalidFilter = true; + options.SuppressInferBindingSourcesForParameters = true; + }); + var builder = services.AddIdentityServer() + .AddInMemoryIdentityResources(Config.IdentityResources) + .AddInMemoryApiScopes(Config.ApiScopes) + .AddInMemoryClients(Config.Clients); + services.AddControllers(); - - services.AddAuthentication(Constants.AuthenticationScheme) - .AddCookie(Constants.AuthenticationScheme, options => - { - options.Cookie.Name = "dough_session"; - options.Cookie.HttpOnly = true; - options.Cookie.SameSite = SameSiteMode.Strict; - options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest; - options.LoginPath = "/api/account/login"; - options.SlidingExpiration = true; - options.LogoutPath = "/api/account/logout"; - }); } public void Configure(IApplicationBuilder app, IWebHostEnvironment env) @@ -72,12 +74,13 @@ namespace Dough if (env.IsDevelopment()) app.UseDeveloperExceptionPage(); - app.UseCors(MainCorsPolicy); app.UseRouting(); + app.UseCors(DefaultCorsPolicy); + app.UseHealthChecks("/health"); app.UseStatusCodePages(); app.UseAuthentication(); app.UseAuthorization(); - app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); + app.UseEndpoints(endpoints => { endpoints.MapControllers().RequireAuthorization(); }); } } } -- cgit v1.3