Compare commits

...

5 Commits

Author SHA1 Message Date
cbf5ec076d Forgot to remove webapi test
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-17 22:08:47 -04:00
a5737a510d Add logging when api request comes in bad 2022-07-17 22:08:14 -04:00
2e9a3108f4 Try and fix a postgres datetime issue
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-17 21:40:57 -04:00
9c58bc2948 More https cleanup since we're behind a traefik proxy
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-17 21:08:33 -04:00
edfc18d7f4 Possible fix for incorrect auth redirect location
All checks were successful
continuous-integration/drone/push Build is passing
2022-07-17 20:55:28 -04:00
5 changed files with 26 additions and 8 deletions

View File

@@ -46,9 +46,9 @@ public abstract class AppDbContext : DbContext
foreach(var entry in entries) {
if (entry.State == EntityState.Added)
{
((BaseEntity)entry.Entity).DateCreated = DateTime.Now;
((BaseEntity)entry.Entity).DateCreated = DateTime.UtcNow;
}
((BaseEntity)entry.Entity).DateModified = DateTime.Now;
((BaseEntity)entry.Entity).DateModified = DateTime.UtcNow;
}
}

View File

@@ -1,6 +1,7 @@
using System.Net.Mime;
using System.Text;
using Microsoft.AspNetCore.WebUtilities;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;
using Treestar.Shared.Models;
@@ -10,10 +11,12 @@ public abstract class ApiAccessLayer
{
private readonly HttpClient _httpClient;
private readonly IAccessLayerAuthenticationProvider _authenticationProvider;
protected readonly ILogger Logger;
protected ApiAccessLayer(string apiBaseUrl, IAccessLayerAuthenticationProvider authenticationProvider)
protected ApiAccessLayer(string apiBaseUrl, IAccessLayerAuthenticationProvider authenticationProvider, ILogger logger)
{
_authenticationProvider = authenticationProvider;
Logger = logger;
var handler = new HttpClientHandler()
{
ServerCertificateCustomValidationCallback = HttpClientHandler.DangerousAcceptAnyServerCertificateValidator
@@ -26,6 +29,10 @@ public abstract class ApiAccessLayer
{
await _authenticationProvider.AddAuthentication(message);
var response = await _httpClient.SendAsync(message);
if (!response.IsSuccessStatusCode)
{
Logger.LogError("Response returned status code {statusCode} with reason {reason} and content {content}", response.StatusCode, response.ReasonPhrase, await response.Content.ReadAsStringAsync());
}
return new HttpResponseWrapper()
{
HttpResponseMessage = response

View File

@@ -8,7 +8,7 @@ namespace WebNovelPortal.AccessLayers;
public class WebApiAccessLayer : ApiAccessLayer
{
public WebApiAccessLayer(string apiBaseUrl, IAccessLayerAuthenticationProvider authenticationProvider) : base(apiBaseUrl, authenticationProvider)
public WebApiAccessLayer(string apiBaseUrl, IAccessLayerAuthenticationProvider authenticationProvider, ILogger<WebApiAccessLayer> logger) : base(apiBaseUrl, authenticationProvider, logger)
{
}

View File

@@ -19,7 +19,8 @@ namespace WebNovelPortal.Controllers
{
await HttpContext.ChallengeAsync(new AuthenticationProperties
{
RedirectUri = redirect
RedirectUri = redirect,
});
}

View File

@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.HttpOverrides;
using Newtonsoft.Json;
using Treestar.Shared.AccessLayers;
using Treestar.Shared.Authentication.OIDC;
@@ -10,7 +11,7 @@ var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddScoped<IAccessLayerAuthenticationProvider, BlazorAccessLayerAuthProvider>();
builder.Services.AddScoped(fac => new WebApiAccessLayer(builder.Configuration["WebAPIUrl"], fac.GetRequiredService<IAccessLayerAuthenticationProvider>()));
builder.Services.AddScoped(fac => new WebApiAccessLayer(builder.Configuration["WebAPIUrl"], fac.GetRequiredService<IAccessLayerAuthenticationProvider>(), fac.GetRequiredService<ILogger<WebApiAccessLayer>>()));
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddHttpContextAccessor();
@@ -19,9 +20,14 @@ builder.Services.AddControllers().AddNewtonsoftJson(opt =>
opt.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
});
builder.Services.AddOIDCAuth(builder.Configuration);
builder.Services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedHost | ForwardedHeaders.XForwardedProto;
});
var app = builder.Build();
app.UseForwardedHeaders();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
@@ -29,8 +35,12 @@ if (!app.Environment.IsDevelopment())
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
else
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
//app.UseHttpsRedirection();
app.UseStaticFiles();