Changeset View
Changeset View
Standalone View
Standalone View
swh/auth/django/backends.py
Show First 20 Lines • Show All 195 Lines • ▼ Show 20 Lines | def authenticate(self, request): | ||||
# create Django user | # create Django user | ||||
user = oidc_user_from_decoded_token(decoded_token, oidc_client.client_id) | user = oidc_user_from_decoded_token(decoded_token, oidc_client.client_id) | ||||
except UnicodeEncodeError as e: | except UnicodeEncodeError as e: | ||||
sentry_sdk.capture_exception(e) | sentry_sdk.capture_exception(e) | ||||
raise ValidationError("Invalid bearer token") | raise ValidationError("Invalid bearer token") | ||||
except KeycloakError as ke: | except KeycloakError as ke: | ||||
error_msg = keycloak_error_message(ke) | error_msg = keycloak_error_message(ke) | ||||
if error_msg == "invalid_grant: Offline user session not found": | if error_msg in ( | ||||
"invalid_grant: Offline session not active", | |||||
"invalid_grant: Offline user session not found", | |||||
): | |||||
error_msg = ( | error_msg = ( | ||||
"Bearer token expired after a long period of inactivity; " | "Bearer token expired after a long period of inactivity; " | ||||
"please generate a new one." | "please generate a new one." | ||||
) | ) | ||||
sentry_sdk.capture_exception(ke) | sentry_sdk.capture_exception(ke) | ||||
raise AuthenticationFailed(error_msg) | raise AuthenticationFailed(error_msg) | ||||
except Exception as e: | except Exception as e: | ||||
sentry_sdk.capture_exception(e) | sentry_sdk.capture_exception(e) | ||||
raise AuthenticationFailed(str(e)) | raise AuthenticationFailed(str(e)) | ||||
return user, None | return user, None |