summaryrefslogtreecommitdiff
path: root/wsgitools/digest.py
diff options
context:
space:
mode:
Diffstat (limited to 'wsgitools/digest.py')
-rw-r--r--wsgitools/digest.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/wsgitools/digest.py b/wsgitools/digest.py
index ffdf063..5b101e5 100644
--- a/wsgitools/digest.py
+++ b/wsgitools/digest.py
@@ -688,10 +688,14 @@ def check_uri(credentials, environ):
if not uri.startswith(environ["SCRIPT_NAME"]):
raise AuthenticationRequired("url mismatch")
uri = uri[len(environ["SCRIPT_NAME"]):]
- if environ.get("PATH_INFO"):
- if not uri.startswith(environ["PATH_INFO"]):
+ path_info = environ.get("PATH_INFO")
+ if path_info:
+ if uri.startswith(path_info):
+ uri = uri[len(path_info):]
+ elif path_info.startswith("/") and uri.startswith(path_info[1:]):
+ uri = uri[len(path_info)-1:]
+ else:
raise AuthenticationRequired("url mismatch")
- uri = uri[len(environ["PATH_INFO"]):]
if uri not in ('', '?'):
raise AuthenticationRequired("url mismatch")