소스 검색

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("/")