diff --git a/Host/Web.config b/Host/Web.config
index c6cf2bdc0..baaa42c24 100644
--- a/Host/Web.config
+++ b/Host/Web.config
@@ -437,9 +437,9 @@
-
-
-
+
+
+
diff --git a/Server/Components/ServerUtils/ApiFacade/HttpClientFacade.cs b/Server/Components/ServerUtils/ApiFacade/HttpClientFacade.cs
index c81b5cb0b..5e6c3474a 100644
--- a/Server/Components/ServerUtils/ApiFacade/HttpClientFacade.cs
+++ b/Server/Components/ServerUtils/ApiFacade/HttpClientFacade.cs
@@ -26,6 +26,7 @@ namespace BeWo.ServerUtils.ApiFacade
private ILog _logger;
public bool DirectConnect { get; private set; }
+ public bool AllowRedirect { get; private set; }
public string Base_Url { get; private set; }
public HttpMethod Method { get; set; } = HttpMethod.Get;
@@ -35,7 +36,7 @@ namespace BeWo.ServerUtils.ApiFacade
public Encoding Encoding { get; set; } = Encoding.UTF8;
public TimeSpan Timeout { get; set; } = TimeSpan.FromSeconds(30);
- public HttpClientFacade(string base_url, string api_key, bool directConntect = true)
+ public HttpClientFacade(string base_url, string api_key, bool directConntect = true, bool allow_redirect = false)
{
if (string.IsNullOrEmpty(base_url))
throw new ArgumentNullException("HttpClient: base_url is missing");
@@ -47,6 +48,7 @@ namespace BeWo.ServerUtils.ApiFacade
if (!string.IsNullOrWhiteSpace(api_key))
SetToken(api_key);
DirectConnect = directConntect;
+ AllowRedirect = allow_redirect;
_logger = LoggerUtils.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
}
@@ -126,7 +128,7 @@ namespace BeWo.ServerUtils.ApiFacade
return parse(() => (T)result, content, extractor);
}
- private static bool ServerCertificateCustomValidation(HttpRequestMessage requestMessage, X509Certificate2 certificate, X509Chain chain, SslPolicyErrors sslErrors)
+ protected static bool ServerCertificateCustomValidation(HttpRequestMessage requestMessage, X509Certificate2 certificate, X509Chain chain, SslPolicyErrors sslErrors)
{
// It is possible to inspect the certificate provided by the server.
Console.WriteLine($"Requested URI: {requestMessage.RequestUri}");
@@ -146,6 +148,7 @@ namespace BeWo.ServerUtils.ApiFacade
{
ServerCertificateCustomValidationCallback = ServerCertificateCustomValidation,
SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls,
+ AllowAutoRedirect = AllowRedirect
};
using (var client = new HttpClient(handler) { Timeout = Timeout })
diff --git a/Server/Components/ServerUtils/ApiFacade/JsonHttpClientFacade.cs b/Server/Components/ServerUtils/ApiFacade/JsonHttpClientFacade.cs
index 3e963b1d4..33e64dd98 100644
--- a/Server/Components/ServerUtils/ApiFacade/JsonHttpClientFacade.cs
+++ b/Server/Components/ServerUtils/ApiFacade/JsonHttpClientFacade.cs
@@ -1,4 +1,5 @@
using System.Net.Http;
+using System.Security.Authentication;
using System.Text.Json;
using System.Threading.Tasks;
@@ -16,7 +17,14 @@ namespace BeWo.ServerUtils.ApiFacade
private protected override async Task getResponseAsync(string method)
{
- using (var client = new HttpClient { Timeout = Timeout })
+ var handler = new HttpClientHandler
+ {
+ ServerCertificateCustomValidationCallback = ServerCertificateCustomValidation,
+ SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls,
+ AllowAutoRedirect = AllowRedirect
+ };
+
+ using (var client = new HttpClient(handler) { Timeout = Timeout })
{
var requestUri = BS.Shared.Core.Utilities.WebUtils.CombineUrl(Base_Url, method);