build: Upgrade Flurl.Http to 4.0.0-pre6

pull/231/head
Robert Dailey 7 months ago
parent be46b708a5
commit 31fa304983

@ -11,7 +11,7 @@
<PackageVersion Include="CliWrap" Version="3.6.4" />
<PackageVersion Include="FluentValidation" Version="11.8.0" />
<PackageVersion Include="Flurl" Version="3.0.7" />
<PackageVersion Include="Flurl.Http" Version="4.0.0-pre5" />
<PackageVersion Include="Flurl.Http" Version="4.0.0-pre6" />
<PackageVersion Include="GitVersion.MsBuild" Version="5.12.0" />
<PackageVersion Include="JetBrains.Annotations" Version="2023.3.0" />
<PackageVersion Include="MudBlazor" Version="6.11.0" />

@ -14,12 +14,7 @@ public class ApiServicesAutofacModule : Module
protected override void Load(ContainerBuilder builder)
{
base.Load(builder);
builder.RegisterType<FlurlConfigurator>();
builder.Register(c =>
{
var config = c.Resolve<FlurlConfigurator>();
return new FlurlClientCache().ConfigureAll(x => config.Configure(x));
})
builder.RegisterType<FlurlClientCache>()
.As<IFlurlClientCache>()
.SingleInstance();

@ -1,37 +0,0 @@
using System.Diagnostics.CodeAnalysis;
using System.Net.Security;
using Flurl.Http.Configuration;
using Recyclarr.Json;
using Recyclarr.Settings;
using Serilog;
namespace Recyclarr.ServarrApi.Http;
public class FlurlConfigurator(ILogger log, ISettingsProvider settingsProvider)
{
[SuppressMessage("SonarCloud", "S4830:Server certificates should be verified during SSL/TLS connections")]
[SuppressMessage("Security", "CA5359:Do Not Disable Certificate Validation")]
public void Configure(IFlurlClientBuilder builder)
{
builder.WithSettings(settings =>
{
settings.JsonSerializer = new DefaultJsonSerializer(GlobalJsonSerializerSettings.Services);
FlurlLogging.SetupLogging(settings, log);
});
builder.ConfigureInnerHandler(handler =>
{
if (!settingsProvider.Settings.EnableSslCertificateValidation)
{
log.Warning(
"Security Risk: Certificate validation is being DISABLED because setting " +
"`enable_ssl_certificate_validation` is set to `false`");
handler.SslOptions = new SslClientAuthenticationOptions
{
RemoteCertificateValidationCallback = (_, _, _, _) => true
};
}
});
}
}

@ -1,17 +1,51 @@
using System.Diagnostics.CodeAnalysis;
using Flurl;
using Flurl.Http;
using Flurl.Http.Configuration;
using Recyclarr.Config.Models;
using Recyclarr.Json;
using Recyclarr.Settings;
using Serilog;
namespace Recyclarr.ServarrApi.Http;
public class ServarrRequestBuilder(IFlurlClientCache clientCache) : IServarrRequestBuilder
public class ServarrRequestBuilder(
ILogger log,
IFlurlClientCache clientCache,
ISettingsProvider settingsProvider)
: IServarrRequestBuilder
{
public IFlurlRequest Request(IServiceConfiguration config, params object[] path)
{
var client = clientCache.Get(config.InstanceName);
client.BaseUrl ??= config.BaseUrl.AppendPathSegments("api", "v3");
var client = clientCache.GetOrAdd(
config.InstanceName,
config.BaseUrl.AppendPathSegments("api", "v3"),
Configure);
return client.Request(path)
.WithHeader("X-Api-Key", config.ApiKey);
}
[SuppressMessage("SonarCloud", "S4830:Server certificates should be verified during SSL/TLS connections")]
[SuppressMessage("Security", "CA5359:Do Not Disable Certificate Validation")]
private void Configure(IFlurlClientBuilder builder)
{
builder.WithSettings(settings =>
{
settings.JsonSerializer = new DefaultJsonSerializer(GlobalJsonSerializerSettings.Services);
FlurlLogging.SetupLogging(settings, log);
});
builder.ConfigureInnerHandler(handler =>
{
if (!settingsProvider.Settings.EnableSslCertificateValidation)
{
log.Warning(
"Security Risk: Certificate validation is being DISABLED because setting " +
"`enable_ssl_certificate_validation` is set to `false`");
handler.ServerCertificateCustomValidationCallback = (_, _, _, _) => true;
}
});
}
}

Loading…
Cancel
Save