#!/usr/bin/env python from circuits import Component, Debugger, handler from circuits.web import Controller, Server from circuits.web.errors import forbidden class ACL(Component): allowed = ['127.0.0.1'] @handler('request', priority=1.0) def on_request(self, event, request, response): """ Filter Requests applying IP based Authorization Filter any incoming requests at a higher priority than the default dispatcher and apply IP based Authorization returning a 403 Forbidden response if the Remote IP Address does not match the allowed set. """ if request.remote.ip not in self.allowed: event.stop() return forbidden(request, response) return None class Root(Controller): def index(self): return 'Hello World!' app = Server(('0.0.0.0', 8000)) ACL().register(app) Root().register(app) Debugger().register(app) app.run()