Преглед изворни кода

Let reverse proxies overwrite script name

Reverse proxies can overwrite the script name with the HTTP header field X-Script-Name.
Unrud пре 9 година
родитељ
комит
83046c80c4
1 измењених фајлова са 5 додато и 0 уклоњено
  1. 5 0
      radicale/__init__.py

+ 5 - 0
radicale/__init__.py

@@ -307,6 +307,11 @@ class Application:
         headers = pprint.pformat(self.headers_log(environ))
         self.logger.debug("Request headers:\n%s", headers)
 
+        # Let reverse proxies overwrite SCRIPT_NAME
+        if "HTTP_X_SCRIPT_NAME" in environ:
+            environ["SCRIPT_NAME"] = environ["HTTP_X_SCRIPT_NAME"]
+            self.logger.debug("Script name overwritten by client: %s",
+                              environ["SCRIPT_NAME"])
         # Sanitize base prefix
         environ["SCRIPT_NAME"] = storage.sanitize_path(
             environ.get("SCRIPT_NAME", "")).rstrip("/")