Browse Source

Add an option allowing requests without base_prefix

Related to #147, patch proposed by jheidemann
Guillaume Ayoub 11 years ago
parent
commit
9ad9c466e2
3 changed files with 6 additions and 0 deletions
  1. 2 0
      config
  2. 3 0
      radicale/__init__.py
  3. 1 0
      radicale/config.py

+ 2 - 0
config

@@ -34,6 +34,8 @@ ciphers =
 dns_lookup = True
 # Root URL of Radicale (starting and ending with a slash)
 base_prefix = /
+# Possibility to allow URLs cleaned by a HTTP server, without the base_prefix
+can_skip_base_prefix = False
 # Message displayed in the client when a password is needed
 realm = Radicale - Password Required
 

+ 3 - 0
radicale/__init__.py

@@ -252,6 +252,9 @@ class Application(object):
             environ["PATH_INFO"] = self.sanitize_uri(
                 "/%s" % environ["PATH_INFO"][len(base_prefix):])
             log.LOGGER.debug("Sanitized path: %s", environ["PATH_INFO"])
+        elif config.get("server", "can_skip_base_prefix"):
+            log.LOGGER.debug(
+                "Skipped already sanitized path: %s", environ["PATH_INFO"])
         else:
             # Request path not starting with base_prefix, not allowed
             log.LOGGER.debug(

+ 1 - 0
radicale/config.py

@@ -49,6 +49,7 @@ INITIAL_CONFIG = {
         "ciphers": "",
         "dns_lookup": "True",
         "base_prefix": "/",
+        "can_skip_base_prefix": "False",
         "realm": "Radicale - Password Required"},
     "encoding": {
         "request": "utf-8",