mirror of
https://github.com/django/django.git
synced 2025-08-03 18:38:50 +00:00
Fixed #24696 -- Made CSRF_COOKIE computation lazy.
Only compute the CSRF_COOKIE when it is actually used. This is a significant speedup for clients not using cookies. Changed result of the “test_token_node_no_csrf_cookie” test: It gets a valid CSRF token now which seems like the correct behavior. Changed auth_tests.test_views.LoginTest.test_login_csrf_rotate to use get_token() to trigger CSRF cookie inclusion instead of changing request.META["CSRF_COOKIE_USED"] directly.
This commit is contained in:
parent
0894643e40
commit
eef95ea96f
3 changed files with 17 additions and 16 deletions
|
@ -23,7 +23,7 @@ from django.core import mail
|
|||
from django.core.urlresolvers import NoReverseMatch, reverse, reverse_lazy
|
||||
from django.db import connection
|
||||
from django.http import HttpRequest, QueryDict
|
||||
from django.middleware.csrf import CsrfViewMiddleware
|
||||
from django.middleware.csrf import CsrfViewMiddleware, get_token
|
||||
from django.test import (
|
||||
TestCase, ignore_warnings, modify_settings, override_settings,
|
||||
)
|
||||
|
@ -606,7 +606,8 @@ class LoginTest(AuthViewsTestCase):
|
|||
# TestClient isn't used here as we're testing middleware, essentially.
|
||||
req = HttpRequest()
|
||||
CsrfViewMiddleware().process_view(req, login_view, (), {})
|
||||
req.META["CSRF_COOKIE_USED"] = True
|
||||
# get_token() triggers CSRF token inclusion in the response
|
||||
get_token(req)
|
||||
resp = login_view(req)
|
||||
resp2 = CsrfViewMiddleware().process_response(req, resp)
|
||||
csrf_cookie = resp2.cookies.get(settings.CSRF_COOKIE_NAME, None)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue