Removing an authentication backend that's cached in a user's session causes exception
|Reported by:||Bradley Ayers <brad@…>||Owned by:||jorgebastida|
|Cc:||sunny@…||Triage Stage:||Ready for checkin|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
Here's the scenario:
- I add a new authentication backend to AUTHENTICATION_BACKENDS.
- I deploy the code and a user logs in using that backend, and then logs out.
- I decide I want to change the name of the backend, so I do, and update AUTHENTICATION_BACKENDS accordingly.
- I deploy the code, and the same user loads the login page again.
On loading the page, an exception will be raised:
Traceback (most recent call last): File "/var/www/httpdocs/.env/lib/python2.7/site-packages/django/core/handlers/base.py", line 111, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/var/www/httpdocs/.env/lib/python2.7/site-packages/console/base.py", line 105, in wrapped result = func(request, *args, **kwargs) File "/var/www/httpdocs/.env/lib/python2.7/site-packages/django/contrib/auth/decorators.py", line 19, in _wrapped_view if test_func(request.user): File "/var/www/httpdocs/.env/lib/python2.7/site-packages/django/utils/functional.py", line 184, in inner self._setup() File "/var/www/httpdocs/.env/lib/python2.7/site-packages/django/utils/functional.py", line 248, in _setup self._wrapped = self._setupfunc() File "/var/www/httpdocs/.env/lib/python2.7/site-packages/django/contrib/auth/middleware.py", line 16, in <lambda> request.user = SimpleLazyObject(lambda: get_user(request)) File "/var/www/httpdocs/.env/lib/python2.7/site-packages/django/contrib/auth/middleware.py", line 8, in get_user request._cached_user = auth.get_user(request) File "/var/www/httpdocs/.env/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 100, in get_user backend = load_backend(backend_path) File "/var/www/httpdocs/.env/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 22, in load_backend raise ImproperlyConfigured('Module "%s" does not define a "%s" authentication backend' % (module, attr)) ImproperlyConfigured: Module "project.apps.core.backends" does not define a "EmailOrUsernameModelBackend" authentication backend
EmailOrUsernameModelBackend is the name of the old backend that has been renamed.
Change History (12)
comment:1 Changed 3 years ago by claudep
- Needs documentation unset
- Needs tests unset
- Patch needs improvement unset
- Triage Stage changed from Unreviewed to Accepted
comment:4 Changed 3 years ago by mhaligowski
- Resolution set to fixed
- Status changed from new to closed
- Triage Stage changed from Accepted to Fixed on a branch
comment:5 Changed 3 years ago by lrekucki
- Has patch set
- Triage Stage changed from Fixed on a branch to Accepted
comment:7 Changed 3 years ago by ptone
- Resolution fixed deleted
- Status changed from closed to reopened
comment:9 Changed 2 years ago by jorgebastida
- Owner changed from mhaligowski to jorgebastida
- Status changed from new to assigned
comment:10 Changed 2 years ago by jorgebastida
comment:11 Changed 2 years ago by jorgebastida
- Triage Stage changed from Accepted to Ready for checkin