aboutsummaryrefslogtreecommitdiffstats
path: root/src/server/Startup.cs
diff options
context:
space:
mode:
authorivarlovlie <git@ivarlovlie.no>2020-08-06 23:28:30 +0200
committerivarlovlie <git@ivarlovlie.no>2020-08-06 23:28:30 +0200
commitd7b5f8b7775a7c623d4bcfa7015476f835aabfa2 (patch)
tree72c1daf1a0b66765c16217c416173310dd73c214 /src/server/Startup.cs
parent0cdb0b7ee3cd80ddb089344e80be2c4b46d75364 (diff)
downloaddough-d7b5f8b7775a7c623d4bcfa7015476f835aabfa2.tar.xz
dough-d7b5f8b7775a7c623d4bcfa7015476f835aabfa2.zip
server: start of ids4 impl
Diffstat (limited to 'src/server/Startup.cs')
-rw-r--r--src/server/Startup.cs45
1 files changed, 24 insertions, 21 deletions
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<MainDbContext>();
+
services.AddDbContext<MainDbContext>(options => {
options.UseMySql(GetConnectionStringFromEnvironment());
});
+
+ services.Configure<ApiBehaviorOptions>(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(); });
}
}
}