diff options
| author | ivarlovlie <git@ivarlovlie.no> | 2020-08-06 23:28:30 +0200 |
|---|---|---|
| committer | ivarlovlie <git@ivarlovlie.no> | 2020-08-06 23:28:30 +0200 |
| commit | d7b5f8b7775a7c623d4bcfa7015476f835aabfa2 (patch) | |
| tree | 72c1daf1a0b66765c16217c416173310dd73c214 /src/server/Startup.cs | |
| parent | 0cdb0b7ee3cd80ddb089344e80be2c4b46d75364 (diff) | |
| download | dough-d7b5f8b7775a7c623d4bcfa7015476f835aabfa2.tar.xz dough-d7b5f8b7775a7c623d4bcfa7015476f835aabfa2.zip | |
server: start of ids4 impl
Diffstat (limited to 'src/server/Startup.cs')
| -rw-r--r-- | src/server/Startup.cs | 45 |
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(); });
}
}
}
|
