diff --git a/lib/http/server.py b/lib/http/server.py index 6a359df0be850a4255138d039c2cbd83d1c50e5a..a751a15a9688ce22a9744f1f978e85e8745e38a0 100644 --- a/lib/http/server.py +++ b/lib/http/server.py @@ -308,6 +308,10 @@ class _HttpServerRequestExecutor(object): handler_context = _HttpServerRequest(self.request_msg) try: + # Authentication, etc. + self.server.PreHandleRequest(handler_context) + + # Call actual request handler result = self.server.HandleRequest(handler_context) except (http.HttpException, KeyboardInterrupt, SystemExit): raise @@ -501,6 +505,13 @@ class HttpServer(http.HttpBase): else: self._children.append(pid) + def PreHandleRequest(self, req): + """Called before handling a request. + + Can be overriden by a subclass. + + """ + def HandleRequest(self, req): """Handles a request.