From 0376bc4235e37e4882d38fcf8b402b32e99697ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gina=20H=C3=A4u=C3=9Fge?= Date: Wed, 29 Jun 2016 12:16:28 +0200 Subject: [PATCH] Only use first value for X-Scheme for reverse proxy setup Solves #1391 --- src/octoprint/server/util/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/octoprint/server/util/__init__.py b/src/octoprint/server/util/__init__.py index 4ac355d2..e75d45fd 100644 --- a/src/octoprint/server/util/__init__.py +++ b/src/octoprint/server/util/__init__.py @@ -225,6 +225,11 @@ class ReverseProxied(object): # determine scheme scheme = environ.get(self._header_scheme, "") + if scheme and "," in scheme: + # Scheme might be something like "https,https" if doubly-reverse-proxied + # without stripping original scheme header first, make sure to only use + # the first entry in such a case. See #1391. + scheme, _ = map(lambda x: x.strip(), scheme.split(",", 1)) if not scheme: scheme = self._fallback_scheme