Projet

Général

Profil

Development #40862

auth_fc: logguer en erreur les connexions échoués à FC

Ajouté par Serghei Mihai il y a environ 4 ans. Mis à jour il y a environ 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
20 mars 2020
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

S'il est impossible de joindre le site de FC, il faut logguer en erreur la cause et non en warning.


Fichiers

Révisions associées

Révision 79134e00 (diff)
Ajouté par Benjamin Dauvergne il y a environ 4 ans

auth_fc: log transport format/errors as errors (#40862)

Historique

#1

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

  • Assigné à mis à Benjamin Dauvergne
#2

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

#3

Mis à jour par Paul Marillonnet il y a environ 4 ans

  • J'avoue ne pas comprendre sur quelles bases certains self.logger.warning restent inchangés dans le code tandis que d'autres deviennent des self.logger.error.
  • Et aussi :
    -            logger.debug('token resolved : {}'.format(response))
    +            logger.debug('token resolved : %s', response)
    

    je ne serais pas pour relancer cette guerre :)
    (d'autant plus que les f-strings vont arriver vite, python3.6 il me semble)
#4

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

Paul Marillonnet a écrit :

  • J'avoue ne pas comprendre sur quelles bases certains self.logger.warning restent inchangés dans le code tandis que d'autres deviennent des self.logger.error.

Quand c'est l'utilisateur qui peut provoquer l'erreur c'est un warning (genre si on reçoit "code-invalid" parce que le code est déjà utilisé on veut pas recevoir de mail).

  • Et aussi :
    [...]
    je ne serais pas pour relancer cette guerre :)
    (d'autant plus que les f-strings vont arriver vite, python3.6 il me semble)

Quelle guerre ? Aucun dév n'utilise format() dans les logs, c'est interdit. Je ne sais pas qui a fait ça (c'est Mike, il est excusé. il est CPF).

#5

Mis à jour par Paul Marillonnet il y a environ 4 ans

Benjamin Dauvergne a écrit :

Quand c'est l'utilisateur qui peut provoquer l'erreur c'est un warning (genre si on reçoit "code-invalid" parce que le code est déjà utilisé on veut pas recevoir de mail).

Ok. Dans ce cas FcOAuthSessionViewMixin.dispatch

            nonce = self.id_token.get('nonce')
            states = request.session.get('fc_states', {})
            if not nonce or nonce not in states:
                self.logger.warning(u'invalid nonce in id_token %s, known ones %s', nonce,
                                    u', '.join(states.keys()))

et
            self.user_info = self.get_user_info()
            if not self.user_info:
                self.logger.warning('userinfo resolution failed: %s', self.token)

sont je crois de la mécanique OIDC et pas des choses déclenchables par l'utilisateur, et pourtant laissées en warning.

Quelle guerre ? Aucun dév n'utilise format() dans les logs, c'est interdit.

C'est ce que disent les partisans du style %-string. ☺

Plus sérieusement, je n'étais pas au courant de cette interdiction. La doc du module indique par exemple que

If you are using {}-formatting (str.format()), you can use {attrname} as the placeholder in the format string […].

#6

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

Paul Marillonnet a écrit :

Benjamin Dauvergne a écrit :

Quand c'est l'utilisateur qui peut provoquer l'erreur c'est un warning (genre si on reçoit "code-invalid" parce que le code est déjà utilisé on veut pas recevoir de mail).

Ok. Dans ce cas FcOAuthSessionViewMixin.dispatch
[...]
et
[...]

Le premier ça peut arriver si tu joues avec tes sessions sinon ça n'arrive jamais, le deuxième je te l'accorde mais pareil ça n'arrive jamais, ça bloque avant.

Plus sérieusement, je n'étais pas au courant de cette interdiction. La doc du module indique par exemple que
[...]

C'est pas compatible python 2.

#8

Mis à jour par Paul Marillonnet il y a environ 4 ans

  • Statut changé de Solution proposée à Solution validée

Benjamin Dauvergne a écrit :

Le premier ça peut arriver si tu joues avec tes sessions sinon ça n'arrive jamais

Ok.

C'est pas compatible python 2.

Ah bein ok dommage.

Ack.

#9

Mis à jour par Benjamin Dauvergne il y a environ 4 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit 79134e00fb0c9baee6b6561d08756f01b9f343a1
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Mar 27 15:29:53 2020 +0100

    auth_fc: log transport format/errors as errors (#40862)
#10

Mis à jour par Frédéric Péters il y a environ 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF