mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-02-19 00:37:42 +01:00
60 lines
2.8 KiB
C#
60 lines
2.8 KiB
C#
// Copyright © WireMock.Net
|
|
|
|
using System;
|
|
using Stef.Validation;
|
|
using WireMock.Owin.ActivityTracing;
|
|
using WireMock.Settings;
|
|
|
|
namespace WireMock.Owin;
|
|
|
|
internal static class WireMockMiddlewareOptionsHelper
|
|
{
|
|
public static IWireMockMiddlewareOptions InitFromSettings(
|
|
WireMockServerSettings settings,
|
|
IWireMockMiddlewareOptions? options = null,
|
|
Action<IWireMockMiddlewareOptions>? postConfigure = null
|
|
)
|
|
{
|
|
Guard.NotNull(settings);
|
|
|
|
options ??= new WireMockMiddlewareOptions();
|
|
|
|
options.ActivityTracingOptions = settings.ActivityTracingOptions;
|
|
options.AllowBodyForAllHttpMethods = settings.AllowBodyForAllHttpMethods;
|
|
options.AllowOnlyDefinedHttpStatusCodeInResponse = settings.AllowOnlyDefinedHttpStatusCodeInResponse;
|
|
options.AllowPartialMapping = settings.AllowPartialMapping;
|
|
options.DisableJsonBodyParsing = settings.DisableJsonBodyParsing;
|
|
options.DisableRequestBodyDecompressing = settings.DisableRequestBodyDecompressing;
|
|
options.DoNotSaveDynamicResponseInLogEntry = settings.DoNotSaveDynamicResponseInLogEntry;
|
|
options.FileSystemHandler = settings.FileSystemHandler;
|
|
options.HandleRequestsSynchronously = settings.HandleRequestsSynchronously;
|
|
options.Logger = settings.Logger;
|
|
options.MaxRequestLogCount = settings.MaxRequestLogCount;
|
|
options.PostWireMockMiddlewareInit = settings.PostWireMockMiddlewareInit;
|
|
options.PreWireMockMiddlewareInit = settings.PreWireMockMiddlewareInit;
|
|
options.QueryParameterMultipleValueSupport = settings.QueryParameterMultipleValueSupport;
|
|
options.RequestLogExpirationDuration = settings.RequestLogExpirationDuration;
|
|
options.SaveUnmatchedRequests = settings.SaveUnmatchedRequests;
|
|
|
|
#if USE_ASPNETCORE
|
|
options.AdditionalServiceRegistration = settings.AdditionalServiceRegistration;
|
|
options.CorsPolicyOptions = settings.CorsPolicyOptions;
|
|
options.ClientCertificateMode = settings.ClientCertificateMode;
|
|
options.AcceptAnyClientCertificate = settings.AcceptAnyClientCertificate;
|
|
#endif
|
|
|
|
if (settings.CustomCertificateDefined)
|
|
{
|
|
options.X509StoreName = settings.CertificateSettings!.X509StoreName;
|
|
options.X509StoreLocation = settings.CertificateSettings.X509StoreLocation;
|
|
options.X509ThumbprintOrSubjectName = settings.CertificateSettings.X509StoreThumbprintOrSubjectName;
|
|
options.X509Certificate = settings.CertificateSettings.X509Certificate;
|
|
options.X509CertificateFilePath = settings.CertificateSettings.X509CertificateFilePath;
|
|
options.X509CertificatePassword = settings.CertificateSettings.X509CertificatePassword;
|
|
}
|
|
|
|
postConfigure?.Invoke(options);
|
|
|
|
return options;
|
|
}
|
|
} |