Projet

Général

Profil

Development #19837

idp oidc: journaliser les réponses des requetes invalides

Ajouté par Serghei Mihai (congés, retour 15/05) il y a plus de 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Josué Kouka
Catégorie:
-
Version cible:
-
Début:
31 octobre 2017
Echéance:
% réalisé:

100%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Pour faciliter de debug.


Fichiers

Révisions associées

Révision bafb9dce (diff)
Ajouté par Josué Kouka il y a plus de 6 ans

idp oidc: log invalid request's response error (#19837)

Historique

#1

Mis à jour par Josué Kouka il y a plus de 6 ans

  • Assigné à mis à Josué Kouka
#2

Mis à jour par Josué Kouka il y a plus de 6 ans

  • Fichier 0001-idp-oidc-log-invalid-request-s-response-errors-19837.patch ajouté
  • Statut changé de Nouveau à En cours
  • Patch proposed changé de Non à Oui
#4

Mis à jour par Josué Kouka il y a plus de 6 ans

  • Fichier 0001-idp-oidc-log-invalid-request-s-response-errors-19837.patch supprimé
#5

Mis à jour par Frédéric Péters il y a plus de 6 ans

Comme domaine de log oidc_authorization_error me semble bien trop spécifique.

#6

Mis à jour par Josué Kouka il y a plus de 6 ans

Frédéric Péters a écrit :

Comme domaine de log oidc_authorization_error me semble bien trop spécifique.

Est ce que oidc_error convient ? ça me fait penser à aussi enregistrer les erreurs liées à la vu token

#7

Mis à jour par Frédéric Péters il y a plus de 6 ans

src/authentic2_idp_openid/views.py:logger = logging.getLogger('authentic.idp.idp_openid')

Le même domaine doit être utilisé. Et là je me rends compte que tu es dans le même fichier, tu as donc déjà cet objet logger.

#8

Mis à jour par Josué Kouka il y a plus de 6 ans

Frédéric Péters a écrit :

[...]

Le même domaine doit être utilisé. Et là je me rends compte que tu es dans le même fichier, tu as donc déjà cet objet logger.

Le bon fichier ne serait pas src/authentic2_idp_oidc/views.py ?

#9

Mis à jour par Frédéric Péters il y a plus de 6 ans

J'en sais rien j'ai lu rapidement déjà trop de temps passé. Astuce : regarder ce qui se fait, faire pareil.

#10

Mis à jour par Josué Kouka il y a plus de 6 ans

Frédéric Péters a écrit :

J'en sais rien j'ai lu rapidement déjà trop de temps passé. Astuce : regarder ce qui se fait, faire pareil.

Ok. Un patch avec @logging.getLogger(__name__) et test sur le logging des erreurs de la vue token aussi.

#11

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Ça ne vas pas, tu ne peux pas faire ça

logger.debug('%s %s %s'...)

ou ça

content = {...}
...
logger.debug(content, ...)

Il faut journaliser des phrases qui explique ce que décrit la ligne de log et l'évènement qui s'y rattache. Donc plutôt:

logger.debug('idp_oidc: authorization request error redirect_uri=%r error=%r error_description=%r etc...', ...)

Tu peux déclarer ton logger en début de fichier ça ne me gêne plus (en tout cas pas sur les fichiers views.py), pas la peine de tester les logs de debug dans les tests.

Je ne pense pas que le extra soit vraiment bien utile, il faut plutôt y mettre des choses qui permette de trier la ligne de log (ex.: redirect_uri ça permet de trier les erreurs venant d'un site précris, mettre error par contre c'est pas forcément utile).

Les erreurs d'autorisation je mettrai ça en warning plutôt qu'en debug, les erreurs sur le token endpoint je serai moins généreux je ne loggerai rien, ils reçoivent l'erreur c'est quand même assez clair, mais bon sinon en warning aussi.

#12

Mis à jour par Josué Kouka il y a plus de 6 ans

Benjamin Dauvergne a écrit :

Ça ne vas pas, tu ne peux pas faire ça
[...]

ou ça

[...]

Il faut journaliser des phrases qui explique ce que décrit la ligne de log et l'évènement qui s'y rattache. Donc plutôt:

[...]

Ok

Tu peux déclarer ton logger en début de fichier ça ne me gêne plus (en tout cas pas sur les fichiers views.py), pas la peine de tester les logs de debug dans les tests.

Préféré laisser dans la fonction surtout que c'est juste pour une seule ligne.

Je ne pense pas que le extra soit vraiment bien utile, il faut plutôt y mettre des choses qui permette de trier la ligne de log (ex.: redirect_uri ça permet de trier les erreurs venant d'un site précris, mettre error par contre c'est pas forcément utile).

OK

Les erreurs d'autorisation je mettrai ça en warning plutôt qu'en debug, les erreurs sur le token endpoint je serai moins généreux je ne loggerai rien, ils reçoivent l'erreur c'est quand même assez clair, mais bon sinon en warning aussi.

Les erreurs d'autorisation sont en warning, je ne logge plus les erreurs sur le token endpoint.
Je rajoute quand meme un petit test non polluant (comparé au précédent patch).

#13

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Ce n'est pas pythonique:

    logger.warning('idp_oidc: authorization request error redirect_uri=%r error=%r error_description=%r'
                   % (redirect_uri, error, error_description), extra={'redirect_uri': redirect_uri})

plutôt:
    logger.warning(u'idp_oidc: authorization request error redirect_uri=%r error=%r error_description=%r'
                   , redirect_uri, error, error_description, extra={'redirect_uri': redirect_uri})

Ça doit faire 20 fois que je te le signale mais toutes les méthodes de log gèrent elles même la chaîne de formatage, nul besoin d'utiliser l'opérateur de formatage, aussi il faut passer une chaîne de formatage unicode parce qu'il y a de l'unicode dans les chaînes de formatage des handlers.

#14

Mis à jour par Josué Kouka il y a plus de 6 ans

Benjamin Dauvergne a écrit :

Ce n'est pas pythonique:
[...]
plutôt:
[...]

Ça doit faire 20 fois que je te le signale mais toutes les méthodes de log gèrent elles même la chaîne de formatage, nul besoin d'utiliser l'opérateur de formatage, aussi il faut passer une chaîne de formatage unicode parce qu'il y a de l'unicode dans les chaînes de formatage des handlers.

Ok, c'est corrigé.

#15

Mis à jour par Benjamin Dauvergne il y a plus de 6 ans

Ack.

#16

Mis à jour par Josué Kouka il y a plus de 6 ans

  • Statut changé de En cours à Résolu (à déployer)
  • % réalisé changé de 0 à 100
commit bafb9dceb11b809fbdcf1da7a1b2a57e0df426da
Author: Josue Kouka <jkouka@entrouvert.com>
Date:   Tue Jan 23 17:23:41 2018 +0100

    idp oidc: log invalid request's response error (#19837)

#17

Mis à jour par Frédéric Péters il y a plus de 5 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF