mirror of
https://github.com/mealie-recipes/mealie.git
synced 2026-02-06 07:53:11 -05:00
feat: OIDC: Call userinfo if no claims found in id token (#5228)
Co-authored-by: Michael Genson <71845777+michael-genson@users.noreply.github.com>
This commit is contained in:
@@ -43,3 +43,6 @@ def mealie_registered_exceptions(t: Translator) -> dict:
|
||||
|
||||
|
||||
class UserLockedOut(Exception): ...
|
||||
|
||||
|
||||
class MissingClaimException(Exception): ...
|
||||
|
||||
@@ -5,6 +5,7 @@ from sqlalchemy.orm.session import Session
|
||||
|
||||
from mealie.core import root_logger
|
||||
from mealie.core.config import get_app_settings
|
||||
from mealie.core.exceptions import MissingClaimException
|
||||
from mealie.core.security.providers.auth_provider import AuthProvider
|
||||
from mealie.db.models.users.users import AuthMethod
|
||||
from mealie.repos.all_repositories import get_repositories
|
||||
@@ -25,7 +26,7 @@ class OpenIDProvider(AuthProvider[UserInfo]):
|
||||
claims = self.data
|
||||
if not claims:
|
||||
self._logger.error("[OIDC] No claims in the id_token")
|
||||
return None
|
||||
raise MissingClaimException()
|
||||
|
||||
# Log all claims for debugging
|
||||
self._logger.debug("[OIDC] Received claims:")
|
||||
@@ -38,13 +39,13 @@ class OpenIDProvider(AuthProvider[UserInfo]):
|
||||
self.required_claims,
|
||||
claims.keys(),
|
||||
)
|
||||
return None
|
||||
raise MissingClaimException()
|
||||
|
||||
# Check for empty required claims
|
||||
for claim in self.required_claims:
|
||||
if not claims.get(claim):
|
||||
self._logger.error("[OIDC] Required claim '%s' is empty", claim)
|
||||
return None
|
||||
raise MissingClaimException()
|
||||
|
||||
repos = get_repositories(self.session, group_id=None, household_id=None)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user