|
@@ -217,14 +217,12 @@ class CsrfViewMiddleware(MiddlewareMixin):
|
|
|
except KeyError:
|
|
|
return None
|
|
|
|
|
|
- try:
|
|
|
- csrf_token = _sanitize_token(cookie_token)
|
|
|
- except InvalidTokenFormat:
|
|
|
- csrf_token = _get_new_csrf_token()
|
|
|
+
|
|
|
+ csrf_token = _sanitize_token(cookie_token)
|
|
|
|
|
|
if csrf_token != cookie_token:
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
request.csrf_cookie_needs_reset = True
|
|
|
return csrf_token
|
|
|
|
|
@@ -318,7 +316,12 @@ class CsrfViewMiddleware(MiddlewareMixin):
|
|
|
raise RejectRequest(REASON_BAD_REFERER % referer.geturl())
|
|
|
|
|
|
def process_request(self, request):
|
|
|
- csrf_token = self._get_token(request)
|
|
|
+ try:
|
|
|
+ csrf_token = self._get_token(request)
|
|
|
+ except InvalidTokenFormat:
|
|
|
+ csrf_token = _get_new_csrf_token()
|
|
|
+ request.csrf_cookie_needs_reset = True
|
|
|
+
|
|
|
if csrf_token is not None:
|
|
|
|
|
|
request.META['CSRF_COOKIE'] = csrf_token
|
|
@@ -374,7 +377,11 @@ class CsrfViewMiddleware(MiddlewareMixin):
|
|
|
|
|
|
|
|
|
|
|
|
- csrf_token = self._get_token(request)
|
|
|
+ try:
|
|
|
+ csrf_token = self._get_token(request)
|
|
|
+ except InvalidTokenFormat as exc:
|
|
|
+ return self._reject(request, f'CSRF cookie {exc.reason}.')
|
|
|
+
|
|
|
if csrf_token is None:
|
|
|
|
|
|
|