Project

General

Profile

Bug #84667

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

Added by Sentry Io 4 months ago. Updated 4 months ago.

Status:
Nouveau
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
13 December 2023
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

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>>

History

#1

Updated by Frédéric Péters 4 months ago

  • Project changed from Suivi des traces to Authentic 2
#2

Updated by Paul Marillonnet 4 months ago

É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

Updated by Benjamin Dauvergne 4 months ago

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

#4

Updated by Serghei Mihai 4 months ago

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

Updated by Benjamin Dauvergne 4 months ago

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

#6

Updated by Benjamin Dauvergne 4 months ago

  • Project changed from Authentic 2 to django-mellon

Also available in: Atom PDF