diff options
-rw-r--r-- | wsgitools/applications.py | 2 | ||||
-rw-r--r-- | wsgitools/middlewares.py | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/wsgitools/applications.py b/wsgitools/applications.py index 1e2b435..4ddf7ea 100644 --- a/wsgitools/applications.py +++ b/wsgitools/applications.py @@ -24,4 +24,6 @@ class StaticContent: def __call__(self, environ, start_response): """wsgi interface""" start_response(self.status, self.headers) + if environ["REQUEST_METHOD"].upper() == "HEAD": + return [] return self.content diff --git a/wsgitools/middlewares.py b/wsgitools/middlewares.py index 5ff610f..ff8120b 100644 --- a/wsgitools/middlewares.py +++ b/wsgitools/middlewares.py @@ -263,15 +263,14 @@ class BasicAuthMiddleware: def authorization_required(self, environ, start_response): """wsgi application for indicating authorization is required.""" status = "401 Authorization required" - headers = [('Content-type', 'text/html'), - ('WWW-Authenticate', 'Basic realm="%s"' % self.realm)] - if environ["REQUEST_METHOD"] == "HEAD": - start_response(status, headers) - return [] html = "<html><head><title>Authorization required</title></head>" + \ "<body><h1>Authorization required</h1></body></html>\n" - headers.append(('Content-length', len(html))) + headers = [('Content-type', 'text/html'), + ('WWW-Authenticate', 'Basic realm="%s"' % self.realm), + ("Content-length", str(len(html)))] start_response(status, headers) + if environ["REQUEST_METHOD"].upper() == "HEAD": + return [] return [html] __all__.append("TracebackMiddleware") @@ -300,4 +299,6 @@ class TracebackMiddleware: data = cgitb.html(exc_info) start_response("200 OK", [("Content-type", "text/html"), ("Content-length", str(len(data)))]) + if environ["REQUEST_METHOD"].upper() == "HEAD": + return [] return [data] |