Projet

Général

Profil

Development #47656

auth_oidc : rapporter le contenu des erreurs BadRequest

Ajouté par Benjamin Dauvergne il y a plus de 3 ans. Mis à jour il y a presque 3 ans.

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

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Les IdPs OIDC retournent un message JSON avec les 400, il faut le rapporter dans les logs.


Fichiers

Révisions associées

Révision cf9c0b2c (diff)
Ajouté par Benjamin Dauvergne il y a presque 3 ans

auth_oidc: report token endpoint errors to user and in logs (#47656)

Historique

#2

Mis à jour par Paul Marillonnet il y a plus de 3 ans

#3

Mis à jour par Paul Marillonnet il y a plus de 3 ans

  • Assigné à mis à Paul Marillonnet
#4

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

C'est pas ça, c'est ce code là qui est concerné :

            response.raise_for_status()
        except requests.RequestException as e:
            logger.warning(
                'auth_oidc: failed to contact the token_endpoint for %(issuer)s, %(exception)s' % {
                    'issuer': issuer,
                    'exception': e,
                })
            messages.warning(request, _('Provider %(name)s is down, report %(request_id)s to '
                                        'an administrator. ') %
                             {
                                 'name': provider.name,
                                 'request_id': request.request_id,
            })

Ça a lieu sur une 400 qui est accompagné d'un message JSON, hors on ne rapport pas son contenu (notamment les clés error et error_description), il faudrait les logger et les afficher dans le message.

Concernant l'initiation on n'a jamais d'erreur mais pour faire propre en plus des warnings il faudrait plutôt remplacer les BadRequest par des messages+redirect vers auth_homepage. La règle c'est pas de BadRequest dans la navigation de l'utilisateur, c'est ok seulement dans les web-services et/ou si c'est quand même accompagné d'une contenu HTML qui permet de continuer la navigation (mais c'est déconseillé car ça conserve une URL transitoire dans l'historique, mieux vaut messages+redirect).

#5

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

  • Assigné à changé de Paul Marillonnet à Benjamin Dauvergne
#7

Mis à jour par Valentin Deniaud il y a presque 3 ans

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

Juste une chaîne de caractère mal recollée après passage de black : _('Provider %(name)s is down, report %(request_id)s to ' 'an administrator. ').

#8

Mis à jour par Benjamin Dauvergne il y a presque 3 ans

  • Statut changé de Solution validée à Résolu (à déployer)
commit cf9c0b2cc0bd6a83ae693969fb4c2b413199d700
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Fri Apr 9 15:52:35 2021 +0200

    auth_oidc: report token endpoint errors to user and in logs (#47656)
#9

Mis à jour par Frédéric Péters il y a presque 3 ans

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

Formats disponibles : Atom PDF