aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/meddleware
diff options
context:
space:
mode:
authorElrond <elrond+mediagoblin.org@samba-tng.org>2011-11-25 22:16:18 +0100
committerElrond <elrond+mediagoblin.org@samba-tng.org>2011-11-25 22:16:18 +0100
commit56dc1c9d3eb73b86bf8e165ffc79ad4929239603 (patch)
treea57858274c126acc71fededf7a8c6663d4a05619 /mediagoblin/meddleware
parent1b7662012f4f0827d01cc8747ce710b3e4dc6b81 (diff)
downloadmediagoblin-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__.py12
-rw-r--r--mediagoblin/meddleware/csrf.py6
-rw-r--r--mediagoblin/meddleware/noop.py5
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