Projet

Général

Profil

Bug #84667

saml identifier plus lié à un Issuer, AttributeError: 'NoneType' object has no attribute 'entity_id'

Ajouté par Sentry Io il y a 5 mois. Mis à jour il y a 4 mois.

Statut:
Nouveau
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
13 décembre 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

https://sentry.entrouvert.org/entrouvert/publik/issues/117325/

J'imagine que le service SAML a été retiré, que ça a mis le saml_identifier à None, mais je n'ai pas vérifié le code.

AttributeError: 'NoneType' object has no attribute 'entity_id'
  File "authentic2/utils/hooks.py", line 56, in call_hooks
    yield hook(*args, **kwargs)
  File "authentic2_auth_saml/apps.py", line 51, in a2_hook_manager_user_data
    user_saml_identifier.idp = get_idp(user_saml_identifier.issuer.entity_id)

exception while calling hook <bound method AppConfig.a2_hook_manager_user_data of <AppConfig: authentic2_auth_saml>>

Historique

#1

Mis à jour par Frédéric Péters il y a 5 mois

  • Projet changé de Suivi des traces à Authentic 2
#2

Mis à jour par Paul Marillonnet il y a 5 mois

Étrange, il y a des choses à surveiller en particulier dans l’ORM Django qui pourraient expliquer que la suppression en cascade du modèle mellon

class UserSAMLIdentifier(models.Model):
    # […]
    issuer = models.ForeignKey('mellon.Issuer', verbose_name=_('Issuer'), null=True, on_delete=models.CASCADE)
se serait mal passée ?

#3

Mis à jour par Benjamin Dauvergne il y a 5 mois

Ou alors l'issuer n'a jamais été défini je ne me rappelle pas la raison de ce null=True.

#4

Mis à jour par Serghei Mihai il y a 5 mois

J'ai du faire une erreur de manip hier lors du rattachement de l'instance de test de Montreuil à celle d'Est-Ensemble.
J'ai recopié les fédérations des agents avec l'idp de Montreuil mais l'issuer n'existe pas encore puisqu'ils doivent mettre à jour les métadonnées d'a2 dans leur IDP.

J'ai créé un issuer correspondant à l'entity_id et lié les objets UserSAMLIdentifier.

Retirer le null=True permettrait d'éviter ces erreurs.

#5

Mis à jour par Benjamin Dauvergne il y a 5 mois

Oui mais il faudra mettre on_delete=models.PROTECT pour éviter les drames.

#6

Mis à jour par Benjamin Dauvergne il y a 4 mois

  • Projet changé de Authentic 2 à django-mellon

Formats disponibles : Atom PDF