diff options
author | Elrond <elrond+mediagoblin.org@samba-tng.org> | 2011-11-25 22:16:18 +0100 |
---|---|---|
committer | Elrond <elrond+mediagoblin.org@samba-tng.org> | 2011-11-25 22:16:18 +0100 |
commit | 56dc1c9d3eb73b86bf8e165ffc79ad4929239603 (patch) | |
tree | a57858274c126acc71fededf7a8c6663d4a05619 /mediagoblin/meddleware | |
parent | 1b7662012f4f0827d01cc8747ce710b3e4dc6b81 (diff) | |
download | mediagoblin-56dc1c9d3eb73b86bf8e165ffc79ad4929239603.tar.lz mediagoblin-56dc1c9d3eb73b86bf8e165ffc79ad4929239603.tar.xz mediagoblin-56dc1c9d3eb73b86bf8e165ffc79ad4929239603.zip |
Add base class for Meddleware
Created a BaseMeddleware which all Meddleware should derive
from. This is not strictly needed, but will greatly help.
The base class has the common __init__ of all the other
Meddlwares and fall backs for all hooks. That way a new
Meddlware only needs to override what it actually wants to
implement.
Diffstat (limited to 'mediagoblin/meddleware')
-rw-r--r-- | mediagoblin/meddleware/__init__.py | 12 | ||||
-rw-r--r-- | mediagoblin/meddleware/csrf.py | 6 | ||||
-rw-r--r-- | mediagoblin/meddleware/noop.py | 5 |
3 files changed, 16 insertions, 7 deletions
diff --git a/mediagoblin/meddleware/__init__.py b/mediagoblin/meddleware/__init__.py index 3addc937..729a020d 100644 --- a/mediagoblin/meddleware/__init__.py +++ b/mediagoblin/meddleware/__init__.py @@ -18,3 +18,15 @@ ENABLED_MEDDLEWARE = ( 'mediagoblin.meddleware.noop:NoOpMeddleware', 'mediagoblin.meddleware.csrf:CsrfMeddleware', ) + + +class BaseMeddleware(object): + + def __init__(self, mg_app): + self.app = mg_app + + def process_request(self, request): + pass + + def process_response(self, request, response): + pass diff --git a/mediagoblin/meddleware/csrf.py b/mediagoblin/meddleware/csrf.py index 051afe58..ca2eca5f 100644 --- a/mediagoblin/meddleware/csrf.py +++ b/mediagoblin/meddleware/csrf.py @@ -21,6 +21,7 @@ from webob.exc import HTTPForbidden from wtforms import Form, HiddenField, validators from mediagoblin import mg_globals +from mediagoblin.meddleware import BaseMeddleware # Use the system (hardware-based) random number generator if it exists. # -- this optimization is lifted from Django @@ -47,7 +48,7 @@ def render_csrf_form_token(request): return form.csrf_token -class CsrfMeddleware(object): +class CsrfMeddleware(BaseMeddleware): """CSRF Protection Meddleware Adds a CSRF Cookie to responses and verifies that it is present @@ -57,9 +58,6 @@ class CsrfMeddleware(object): CSRF_KEYLEN = 64 SAFE_HTTP_METHODS = ("GET", "HEAD", "OPTIONS", "TRACE") - def __init__(self, mg_app): - self.app = mg_app - def process_request(self, request): """For non-safe requests, confirm that the tokens are present and match. diff --git a/mediagoblin/meddleware/noop.py b/mediagoblin/meddleware/noop.py index d11a5b9e..b43053de 100644 --- a/mediagoblin/meddleware/noop.py +++ b/mediagoblin/meddleware/noop.py @@ -15,11 +15,10 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. -class NoOpMeddleware(object): +from mediagoblin.meddleware import BaseMeddleware - def __init__(self, mg_app): - self.app = mg_app +class NoOpMeddleware(BaseMeddleware): def process_request(self, request): pass |