mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-26 10:18:26 +02:00
Add option to run the server on http & https (#818)
* HostingProtocol.HttpAndHttps * . * . * . * HostingScheme
This commit is contained in:
@@ -94,6 +94,26 @@ internal class SimpleCommandLineParser
|
||||
}, defaultValue);
|
||||
}
|
||||
|
||||
public TEnum? GetEnumValue<TEnum>(string name)
|
||||
where TEnum : struct
|
||||
{
|
||||
return GetValue(name, values =>
|
||||
{
|
||||
var value = values.FirstOrDefault();
|
||||
return Enum.TryParse<TEnum>(value, true, out var enumValue) ? enumValue : (TEnum?)null;
|
||||
});
|
||||
}
|
||||
|
||||
public TEnum GetEnumValue<TEnum>(string name, TEnum defaultValue)
|
||||
where TEnum : struct
|
||||
{
|
||||
return GetValue(name, values =>
|
||||
{
|
||||
var value = values.FirstOrDefault();
|
||||
return Enum.TryParse<TEnum>(value, true, out var enumValue) ? enumValue : defaultValue;
|
||||
}, defaultValue);
|
||||
}
|
||||
|
||||
public string GetStringValue(string name, string defaultValue)
|
||||
{
|
||||
return GetValue(name, values => values.FirstOrDefault() ?? defaultValue, defaultValue);
|
||||
|
||||
@@ -9,6 +9,7 @@ using WireMock.Handlers;
|
||||
using WireMock.Logging;
|
||||
using WireMock.Matchers;
|
||||
using WireMock.RegularExpressions;
|
||||
using WireMock.Types;
|
||||
#if USE_ASPNETCORE
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using WireMock.Types;
|
||||
@@ -22,7 +23,7 @@ namespace WireMock.Settings
|
||||
public class WireMockServerSettings
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the port.
|
||||
/// Gets or sets the http port.
|
||||
/// </summary>
|
||||
[PublicAPI]
|
||||
public int? Port { get; set; }
|
||||
@@ -34,6 +35,12 @@ namespace WireMock.Settings
|
||||
[PublicAPI]
|
||||
public bool? UseSSL { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Defines on which scheme (http/https) to host. (This overrides the <c>UseSSL</c> value).
|
||||
/// </summary>
|
||||
[PublicAPI]
|
||||
public HostingScheme? HostingScheme { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets or sets whether to start admin interface.
|
||||
/// </summary>
|
||||
|
||||
@@ -54,14 +54,11 @@ public static class WireMockServerSettingsParser
|
||||
UseRegexExtended = parser.GetBoolValue(nameof(WireMockServerSettings.UseRegexExtended), true),
|
||||
WatchStaticMappings = parser.GetBoolValue("WatchStaticMappings"),
|
||||
WatchStaticMappingsInSubdirectories = parser.GetBoolValue("WatchStaticMappingsInSubdirectories"),
|
||||
HostingScheme = parser.GetEnumValue<HostingScheme>(nameof(WireMockServerSettings.HostingScheme))
|
||||
};
|
||||
|
||||
#if USE_ASPNETCORE
|
||||
settings.CorsPolicyOptions = parser.GetValue(nameof(WireMockServerSettings.CorsPolicyOptions), values =>
|
||||
{
|
||||
var value = string.Join(string.Empty, values);
|
||||
return Enum.TryParse<CorsPolicyOptions>(value, true, out var corsPolicyOptions) ? corsPolicyOptions : CorsPolicyOptions.None;
|
||||
});
|
||||
settings.CorsPolicyOptions = parser.GetEnumValue(nameof(WireMockServerSettings.CorsPolicyOptions), CorsPolicyOptions.None);
|
||||
#endif
|
||||
|
||||
if (logger != null)
|
||||
@@ -77,7 +74,7 @@ public static class WireMockServerSettingsParser
|
||||
{
|
||||
settings.Port = parser.GetIntValue(nameof(WireMockServerSettings.Port));
|
||||
}
|
||||
else
|
||||
else if (settings.HostingScheme is null)
|
||||
{
|
||||
settings.Urls = parser.GetValues("Urls", new[] { "http://*:9091/" });
|
||||
}
|
||||
@@ -95,7 +92,7 @@ public static class WireMockServerSettingsParser
|
||||
SaveMapping = parser.GetBoolValue("SaveMapping"),
|
||||
SaveMappingForStatusCodePattern = parser.GetStringValue("SaveMappingForStatusCodePattern", "*"),
|
||||
SaveMappingToFile = parser.GetBoolValue("SaveMappingToFile"),
|
||||
Url = proxyUrl
|
||||
Url = proxyUrl!
|
||||
};
|
||||
|
||||
string? proxyAddress = parser.GetStringValue("WebProxyAddress");
|
||||
@@ -103,7 +100,7 @@ public static class WireMockServerSettingsParser
|
||||
{
|
||||
settings.ProxyAndRecordSettings.WebProxySettings = new WebProxySettings
|
||||
{
|
||||
Address = proxyAddress,
|
||||
Address = proxyAddress!,
|
||||
UserName = parser.GetStringValue("WebProxyUserName"),
|
||||
Password = parser.GetStringValue("WebProxyPassword")
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user