Catch exceptions in social auth (oauth) pipeline
The social auth pipeline will raise exceptions if the requests to its endpoints have failures. These cause the user to get a generic 500 response and alerts to trigger if above the threshold.
e.g
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.9/site-packages/django/views/decorators/cache.py", line 44, in _wrapped_view_func
response = view_func(request, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
return view_func(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/social_django/utils.py", line 46, in wrapper
return func(request, backend, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/social_django/views.py", line 31, in complete
return do_complete(request.backend, _do_login, user=request.user,
File "/usr/local/lib/python3.9/site-packages/social_core/actions.py", line 45, in do_complete
user = backend.complete(user=user, *args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/social_core/backends/base.py", line 40, in complete
return self.auth_complete(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/social_core/utils.py", line 247, in wrapper
return func(*args, **kwargs)
File "/usr/local/lib/python3.9/site-packages/social_core/backends/oauth.py", line 385, in auth_complete
state = self.validate_state()
File "/usr/local/lib/python3.9/site-packages/social_core/backends/oauth.py", line 87, in validate_state
raise AuthStateMissing(self, 'state')
social_core.exceptions.AuthStateMissing: Session value state missing.
Much like webauth-2-saml2 shim, add the middleware to handle these and provide (possibly a 400) responses using the templates used by other views
Edited by Dr Rich Wareham