From 2808cdc8fb15ad27f83af3e62db69f5ea7ced29e Mon Sep 17 00:00:00 2001 From: Hasan Ramezani Date: Mon, 7 Sep 2020 13:33:47 +0200 Subject: Fixed #31962 -- Made SessionMiddleware raise SessionInterrupted when session destroyed while request is processing. --- docs/ref/exceptions.txt | 30 ++++++++++++++++++++++++++++++ docs/releases/3.2.txt | 5 +++++ 2 files changed, 35 insertions(+) (limited to 'docs') diff --git a/docs/ref/exceptions.txt b/docs/ref/exceptions.txt index ae2180ff9f..d4af1de79d 100644 --- a/docs/ref/exceptions.txt +++ b/docs/ref/exceptions.txt @@ -162,6 +162,18 @@ or model are classified as ``NON_FIELD_ERRORS``. This constant is used as a key in dictionaries that otherwise map fields to their respective list of errors. +``BadRequest`` +-------------- + +.. exception:: BadRequest + + .. versionadded:: 3.2 + + The :exc:`BadRequest` exception is raised when the request cannot be + processed due to a client error. If a ``BadRequest`` exception reaches the + ASGI/WSGI handler level it results in a + :class:`~django.http.HttpResponseBadRequest`. + ``RequestAborted`` ------------------ @@ -271,6 +283,24 @@ Http exceptions may be imported from ``django.http``. :exc:`UnreadablePostError` is raised when a user cancels an upload. +.. currentmodule:: django.contrib.sessions.exceptions + +Sessions Exceptions +=================== + +Sessions exceptions are defined in ``django.contrib.sessions.exceptions``. + +``SessionInterrupted`` +---------------------- + +.. exception:: SessionInterrupted + + .. versionadded:: 3.2 + + :exc:`SessionInterrupted` is raised when a session is destroyed in a + concurrent request. It's a subclass of + :exc:`~django.core.exceptions.BadRequest`. + Transaction Exceptions ====================== diff --git a/docs/releases/3.2.txt b/docs/releases/3.2.txt index a7bd5575d1..63d6f0700d 100644 --- a/docs/releases/3.2.txt +++ b/docs/releases/3.2.txt @@ -489,6 +489,11 @@ Miscellaneous :py:meth:`~unittest.TestCase.setUp` method are called before ``TestContextDecorator.disable()``. +* ``SessionMiddleware`` now raises a + :exc:`~django.contrib.sessions.exceptions.SessionInterrupted` exception + instead of :exc:`~django.core.exceptions.SuspiciousOperation` when a session + is destroyed in a concurrent request. + .. _deprecated-features-3.2: Features deprecated in 3.2 -- cgit v1.3