1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/WebStack/Adapters/JavaServlet.py Thu Mar 25 22:20:30 2004 +0000
1.3 @@ -0,0 +1,39 @@
1.4 +#!/usr/bin/env python
1.5 +
1.6 +"""
1.7 +Java Servlet adapter.
1.8 +"""
1.9 +
1.10 +from WebStack import JavaServlet
1.11 +
1.12 +class Dispatcher:
1.13 +
1.14 + "A servlet helper class dispatching requests to WebStack resources."
1.15 +
1.16 + def __init__(self, resource, authenticator=None):
1.17 +
1.18 + """
1.19 + Initialise the root application-specific 'resource' and optional
1.20 + 'authenticator'.
1.21 + """
1.22 +
1.23 + self.webstack_resource = resource
1.24 + self.webstack_authenticator = authenticator
1.25 +
1.26 + def service(self, request, response):
1.27 +
1.28 + """
1.29 + Handle the 'request' and 'response' presented by the servlet.
1.30 + """
1.31 +
1.32 + trans = WebStack.JavaServlet.Transaction(request, response)
1.33 + if self.webstack_authenticator is None or self.webstack_authenticator.authenticate(trans):
1.34 + self.webstack_resource.respond(trans)
1.35 + else:
1.36 + trans.set_response_code(401) # Unauthorized
1.37 + trans.set_header_value("WWW-Authenticate", '%s realm="%s"' % (
1.38 + self.webstack_authenticator.get_auth_type(), self.webstack_authenticator.get_realm()))
1.39 +
1.40 + trans.commit()
1.41 +
1.42 +# vim: tabstop=4 expandtab shiftwidth=4