aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/authentication.py
diff options
context:
space:
mode:
authorTom Christie2013-06-29 08:14:05 +0100
committerTom Christie2013-06-29 08:14:05 +0100
commit35022ca9213939a2f40c82facffa908a818efe0b (patch)
treed9f26213b9c385e4e6f9cb2c621e7342d5f862ec /rest_framework/authentication.py
parentf7db06953bd8ad7f5e0211f49a04e8d5bb634380 (diff)
downloaddjango-rest-framework-35022ca9213939a2f40c82facffa908a818efe0b.tar.bz2
Refactor SessionAuthentication slightly
Diffstat (limited to 'rest_framework/authentication.py')
-rw-r--r--rest_framework/authentication.py24
1 files changed, 15 insertions, 9 deletions
diff --git a/rest_framework/authentication.py b/rest_framework/authentication.py
index 10298027..b42162dd 100644
--- a/rest_framework/authentication.py
+++ b/rest_framework/authentication.py
@@ -26,6 +26,12 @@ def get_authorization_header(request):
return auth
+class CSRFCheck(CsrfViewMiddleware):
+ def _reject(self, request, reason):
+ # Return the failure reason instead of an HttpResponse
+ return reason
+
+
class BaseAuthentication(object):
"""
All authentication classes should extend BaseAuthentication.
@@ -110,20 +116,20 @@ class SessionAuthentication(BaseAuthentication):
if not user or not user.is_active:
return None
- # Enforce CSRF validation for session based authentication.
- class CSRFCheck(CsrfViewMiddleware):
- def _reject(self, request, reason):
- # Return the failure reason instead of an HttpResponse
- return reason
+ self.enforce_csrf(http_request)
+
+ # CSRF passed with authenticated user
+ return (user, None)
- reason = CSRFCheck().process_view(http_request, None, (), {})
+ def enforce_csrf(self, request):
+ """
+ Enforce CSRF validation for session based authentication.
+ """
+ reason = CSRFCheck().process_view(request, None, (), {})
if reason:
# CSRF failed, bail with explicit error message
raise exceptions.AuthenticationFailed('CSRF Failed: %s' % reason)
- # CSRF passed with authenticated user
- return (user, None)
-
class TokenAuthentication(BaseAuthentication):
"""