Jelajahi Sumber

Let reverse proxies overwrite script name

Reverse proxies can overwrite the script name with the HTTP header field X-Script-Name.
Unrud 9 tahun lalu
induk
melakukan
83046c80c4
1 mengubah file dengan 5 tambahan dan 0 penghapusan
  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("/")