mirror of
https://github.com/hmaxnl/SharpRSS.git
synced 2025-01-18 04:44:20 +01:00
Working on http settings
This commit is contained in:
parent
c4ae8ab195
commit
89cb9fbe1e
|
@ -8,6 +8,7 @@ using SharpRSS.Data;
|
|||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
builder.UseSRSS();
|
||||
|
||||
builder.Services.AddBlazoredLocalStorage();
|
||||
|
||||
// Add services to the container.
|
||||
|
@ -16,6 +17,16 @@ builder.Services.AddRazorComponents()
|
|||
builder.Services.AddMudServices();
|
||||
builder.Services.AddHttpContextAccessor(); // HttpContext accessor
|
||||
|
||||
/*
|
||||
* HSTS config
|
||||
*/
|
||||
builder.Services.AddHsts(options =>
|
||||
{
|
||||
options.Preload = true;
|
||||
options.IncludeSubDomains = true;
|
||||
options.MaxAge = TimeSpan.FromDays(60); // For DEV = 60 days, PROD = 1 year
|
||||
});
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
var contextFactory = app.Services.GetService<IDbContextFactory<SRSSContext>>();
|
||||
|
@ -24,12 +35,14 @@ if (contextFactory != null)
|
|||
await using var context = await contextFactory.CreateDbContextAsync();
|
||||
context.Database.EnsureCreated();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
if (!app.Environment.IsDevelopment())
|
||||
{
|
||||
app.UseExceptionHandler("/Error", createScopeForErrors: true);
|
||||
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||
app.UseHsts();
|
||||
}
|
||||
|
||||
|
|
|
@ -31,4 +31,8 @@
|
|||
</Compile>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Auth\" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -43,5 +43,15 @@
|
|||
"Application": "SharpRSS"
|
||||
}
|
||||
},
|
||||
"HTTP":
|
||||
{
|
||||
"HSTS":
|
||||
{
|
||||
"EnableHSTS": true,
|
||||
"MaxAgeSeconds": 31536000,
|
||||
"IncludeSubdomains": true,
|
||||
"Preload": true
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
|
|
|
@ -1,14 +1,13 @@
|
|||
using Blazored.LocalStorage;
|
||||
using DotBased.Logging;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using SharpRSS.Business.Services;
|
||||
using ILogger = DotBased.Logging.ILogger;
|
||||
|
||||
namespace SharpRSS.Blazor.Auth;
|
||||
namespace SharpRSS.Business.Auth;
|
||||
|
||||
public class SRSSAuthenticationStateProvider : AuthenticationStateProvider
|
||||
{
|
||||
public SRSSAuthenticationStateProvider(IHttpContextAccessor contextAccessor, AuthService authService, ILocalStorageService localStorageService)
|
||||
public SRSSAuthenticationStateProvider(IHttpContextAccessor contextAccessor, AuthService authService)
|
||||
{
|
||||
_logger = LogService.RegisterLogger(typeof(SRSSAuthenticationStateProvider));
|
||||
if (contextAccessor.HttpContext != null)
|
||||
|
@ -20,7 +19,6 @@ public class SRSSAuthenticationStateProvider : AuthenticationStateProvider
|
|||
throw ex;
|
||||
}
|
||||
_authService = authService;
|
||||
_localStorageService = localStorageService;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -29,7 +27,6 @@ public class SRSSAuthenticationStateProvider : AuthenticationStateProvider
|
|||
private readonly ILogger _logger;
|
||||
private readonly HttpContext _httpContext;
|
||||
private readonly AuthService _authService;
|
||||
private readonly ILocalStorageService _localStorageService;
|
||||
/*
|
||||
* Consts
|
||||
*/
|
||||
|
@ -37,6 +34,7 @@ public class SRSSAuthenticationStateProvider : AuthenticationStateProvider
|
|||
|
||||
public override Task<AuthenticationState> GetAuthenticationStateAsync()
|
||||
{
|
||||
_logger.Debug("Getting authentication state...");
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
|
@ -1,12 +1,14 @@
|
|||
using DotBased.Logging;
|
||||
using DotBased.Logging.Serilog;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.EntityFrameworkCore.Diagnostics;
|
||||
using Serilog;
|
||||
using SharpRSS.Business.Auth;
|
||||
using SharpRSS.Business.Services;
|
||||
using SharpRSS.Core.Configuration;
|
||||
using SharpRSS.Data;
|
||||
|
@ -24,7 +26,7 @@ public static class DependencyInjection
|
|||
Log.Logger = serilogConfig.CreateLogger();
|
||||
|
||||
LogService.AddLogAdapter(new BasedSerilogAdapter(Log.Logger));
|
||||
var logger = LogService.RegisterLogger(typeof(DependencyInjection));
|
||||
var _logger = LogService.RegisterLogger(typeof(DependencyInjection));
|
||||
|
||||
builder.Logging.ClearProviders();
|
||||
builder.Logging.AddSerilog();
|
||||
|
@ -40,17 +42,17 @@ public static class DependencyInjection
|
|||
switch (dbSettings.Server.ToUpper())
|
||||
{
|
||||
case "SQLITE":
|
||||
logger.Information("Configuring SQLite context...");
|
||||
_logger.Information("Configuring SQLite context...");
|
||||
options.UseSqlite(dbSettings.Connection);
|
||||
break;
|
||||
case "MARIADB":
|
||||
logger.Information("Configuring MariaDB context...");
|
||||
_logger.Information("Configuring MariaDB context...");
|
||||
var srvVersion = ServerVersion.AutoDetect(dbSettings.Connection);
|
||||
logger.Information("Server found, version: {SrvVersion}", srvVersion.Version.Build);
|
||||
_logger.Information("Server found, version: {SrvVersion}", srvVersion.Version.Build);
|
||||
options.UseMySql(dbSettings.Connection, srvVersion);
|
||||
break;
|
||||
case "MSSQL":
|
||||
logger.Information("Configuring MSSQL context...");
|
||||
_logger.Information("Configuring MSSQL context...");
|
||||
options.UseSqlServer(dbSettings.Connection);
|
||||
break;
|
||||
default:
|
||||
|
@ -63,6 +65,11 @@ public static class DependencyInjection
|
|||
*/
|
||||
builder.Services.AddScoped<AuthService>();
|
||||
|
||||
/*
|
||||
* Authentication
|
||||
*/
|
||||
builder.Services.AddScoped<AuthenticationStateProvider, SRSSAuthenticationStateProvider>();
|
||||
|
||||
//TODO: Auth, Settings
|
||||
return builder;
|
||||
}
|
||||
|
|
11
SharpRSS.Data/Domains/Configuration/HstsConfiguration.cs
Normal file
11
SharpRSS.Data/Domains/Configuration/HstsConfiguration.cs
Normal file
|
@ -0,0 +1,11 @@
|
|||
namespace SharpRSS.Data.Domains.Configuration;
|
||||
|
||||
public class HstsConfiguration
|
||||
{
|
||||
public const string Hsts = "HSTS";
|
||||
|
||||
public bool EnableHsts { get; set; }
|
||||
public long MaxAgeSeconds { get; set; }
|
||||
public bool IncludeSubdomains { get; set; }
|
||||
public bool Preload { get; set; }
|
||||
}
|
Loading…
Reference in New Issue
Block a user