From 529ab8f8d98ddf9f38b9c1fff8e6410dd8540b69 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Fri, 20 Apr 2007 23:46:32 +0200 Subject: added better support for HEAD --- wsgitools/applications.py | 2 ++ 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 = "Authorization required" + \ "

Authorization required

\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] -- cgit v1.2.3