aboutsummaryrefslogtreecommitdiff
path: root/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2017-09-29 15:17:54 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2017-09-29 15:17:54 -0400
commit878abbddda4da46811d8709ec90248b9c1b5f569 (patch)
treeb4032c32991dfa5293fcd27f23a00ea5a45ba8fb /Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
parent134e74414d2644f1c345a2ef8876504aaaa69027 (diff)
fixes #1427 - [Feature Request]: Require Encryption
Diffstat (limited to 'Emby.Server.Implementations/HttpServer/HttpListenerHost.cs')
-rw-r--r--Emby.Server.Implementations/HttpServer/HttpListenerHost.cs19
1 files changed, 19 insertions, 0 deletions
diff --git a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
index 031d1d90b..acc247e45 100644
--- a/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
+++ b/Emby.Server.Implementations/HttpServer/HttpListenerHost.cs
@@ -423,6 +423,19 @@ namespace Emby.Server.Implementations.HttpServer
return true;
}
+ private bool ValidateSsl(string remoteIp)
+ {
+ if (_config.Configuration.RequireHttps && _appHost.EnableHttps)
+ {
+ if (!_networkManager.IsInLocalNetwork(remoteIp))
+ {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
/// <summary>
/// Overridable method that can be used to implement a custom hnandler
/// </summary>
@@ -453,6 +466,12 @@ namespace Emby.Server.Implementations.HttpServer
return;
}
+ if (!ValidateSsl(httpReq.RemoteIp))
+ {
+ RedirectToUrl(httpRes, urlString.Replace("http://", "https://", StringComparison.OrdinalIgnoreCase));
+ return;
+ }
+
if (string.Equals(httpReq.Verb, "OPTIONS", StringComparison.OrdinalIgnoreCase))
{
httpRes.StatusCode = 200;