1.1 --- a/WebStack/Adapters/Twisted.py Thu Nov 17 19:21:34 2005 +0000
1.2 +++ b/WebStack/Adapters/Twisted.py Sat Nov 19 23:59:54 2005 +0000
1.3 @@ -53,22 +53,24 @@
1.4 "Dispatch the given 'request' to the root application-specific resource."
1.5
1.6 trans = WebStack.Twisted.Transaction(request)
1.7 - if self.webstack_authenticator is None or self.webstack_authenticator.authenticate(trans):
1.8 - try:
1.9 - self.webstack_resource.respond(trans)
1.10 - except EndOfResponse:
1.11 - pass
1.12 - except:
1.13 - if self.handle_errors:
1.14 - trans.set_response_code(500) # Internal error
1.15 - else:
1.16 - raise
1.17 - else:
1.18 - trans.set_response_code(401) # Unauthorized
1.19 - trans.set_header_value("WWW-Authenticate", '%s realm="%s"' % (
1.20 - self.webstack_authenticator.get_auth_type(), self.webstack_authenticator.get_realm()))
1.21 + try:
1.22 + if self.webstack_authenticator is None or self.webstack_authenticator.authenticate(trans):
1.23 + try:
1.24 + self.webstack_resource.respond(trans)
1.25 + except EndOfResponse:
1.26 + pass
1.27 + except:
1.28 + if self.handle_errors:
1.29 + trans.set_response_code(500) # Internal error
1.30 + else:
1.31 + raise
1.32 + else:
1.33 + trans.set_response_code(401) # Unauthorized
1.34 + trans.set_header_value("WWW-Authenticate", '%s realm="%s"' % (
1.35 + self.webstack_authenticator.get_auth_type(), self.webstack_authenticator.get_realm()))
1.36
1.37 - trans.commit()
1.38 + finally:
1.39 + trans.commit()
1.40 request.finish()
1.41 return twisted.web.server.NOT_DONE_YET
1.42