Projet

Général

Profil

Development #66438

auth_oidc: JWK.get n'existe pas dans la version 0.8.0 de jwcrypto disponible en bullseye (remplacer par les accesseurs correspondant dans ce cas)

Ajouté par Benjamin Dauvergne il y a presque 2 ans. Mis à jour il y a presque 2 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
21 juin 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Les accesseurs JWK.key_type ont été dépréciés dans les versions récentes utilisés par les tests mais le code n'est donc plus compatible avec la version 0.8.0 disponible en bullseye (ou même la version 0.6 de notre dépôt)

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

AttributeError: 'JWK' object has no attribute 'get'
  File "django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "django/views/decorators/clickjacking.py", line 15, in wrapped_view
    resp = view_func(*args, **kwargs)
  File "django/contrib/auth/decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "django/views/generic/base.py", line 97, in dispatch
    return handler(request, *args, **kwargs)
  File "django/views/generic/edit.py", line 194, in post
    return super().post(request, *args, **kwargs)
  File "django/views/generic/edit.py", line 141, in post
    if form.is_valid():
  File "django/forms/forms.py", line 185, in is_valid
    return self.is_bound and not self.errors
  File "django/forms/forms.py", line 180, in errors
    self.full_clean()
  File "django/forms/forms.py", line 383, in full_clean
    self._post_clean()
  File "django/forms/models.py", line 403, in _post_clean
    self.instance.full_clean(exclude=exclude, validate_unique=False)
  File "django/db/models/base.py", line 1191, in full_clean
    self.clean()
  File "authentic2_auth_oidc/models.py", line 159, in clean
    if not any([key.get('kty', None) == key_sig_mapping[self.idtoken_algo] for key in self.jwkset]):
  File "authentic2_auth_oidc/models.py", line 159, in <listcomp>
    if not any([key.get('kty', None) == key_sig_mapping[self.idtoken_algo] for key in self.jwkset]):

Fichiers


Demandes liées

Lié à Authentic 2 - Development #66488: tox : refactoring des cibles pour coller davantage aux dépendances dans leur version d’une release debian donnéeFermé22 juin 2022

Actions
Lié à Authentic 2 - Development #66595: tox: régorganiser les cibles autour des versions de debianRejeté24 juin 2022

Actions

Révisions associées

Révision 50c473d9 (diff)
Ajouté par Benjamin Dauvergne il y a presque 2 ans

auth_oidc: adapt to be compatible with jwcrypto<1 (#66438)

Historique

#1

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

  • Assigné à mis à Benjamin Dauvergne
#2

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

J'ai ajouté une cible tox temporaire pour montrer que ça marche bien avec jwcrypto 0.8.x et les dernières versions.

#3

Mis à jour par Paul Marillonnet il y a presque 2 ans

Pourquoi la cible tox avec jwcrypto 0.8.x est-elle temporaire ? J’étais parti dans l’idée que l’environnement py3-dj32-drf312-djtables241 reflétait l’état des dépendances dans leur version bullseye, et ça me paraîtrait logique qu’on y inclue jwcrypto dans sa version bullseye aussi, non ?

#4

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

Paul Marillonnet a écrit :

Pourquoi la cible tox avec jwcrypto 0.8.x est-elle temporaire ? J’étais parti dans l’idée que l’environnement py3-dj32-drf312-djtables241 reflétait l’état des dépendances dans leur version bullseye, et ça me paraîtrait logique qu’on y inclue jwcrypto dans sa version bullseye aussi, non ?

Je comprends. Le build est déjà bien long même la nuit, je verrai bien un refactoring des cibles avec deux cibles de base py3-buster et py3-bullseye qui tourneraient par défaut tant qu'on est dans cette entre deux où la recette et la prod n'ont pas la même distrib; et ensuite une cible py3 avec les contraintes max sur les dépendances héritées du setup.py et uniquement la nuit (ça simplifiera pas mal le nom des cibles, actuellement on ne sait pas trop à quoi sert de test sur drf39 ou djtable241, là ça devrait devenir plus clair).

#5

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

En plus il en manquait un bout pour que ça s'exécute vraiment dans le job jenkins de la branche, j'ai ajouté une modif temporaire à Jenkinsfile, je ferai le refactoring des cibles dans un autre ticket.

#6

Mis à jour par Paul Marillonnet il y a presque 2 ans

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

Benjamin Dauvergne a écrit :

En plus il en manquait un bout pour que ça s'exécute vraiment dans le job jenkins de la branche, j'ai ajouté une modif temporaire à Jenkinsfile, je ferai le refactoring des cibles dans un autre ticket.

Ok, très bien. Oui c’est vrai qu’il y a des croisements bizarres sur des dépendances, qui ne correspondent pas à leur état dans une version de debian donnée, je ne sais pas/plus pourquoi. Ack.

#7

Mis à jour par Paul Marillonnet il y a presque 2 ans

  • Lié à Development #66488: tox : refactoring des cibles pour coller davantage aux dépendances dans leur version d’une release debian donnée ajouté
#8

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

  • Lié à Development #66595: tox: régorganiser les cibles autour des versions de debian ajouté
#9

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

  • Statut changé de Solution validée à Résolu (à déployer)
commit 50c473d98d64d60dd2ebd62fafc5d056af5e4397
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Tue Jun 21 11:17:01 2022 +0200

    auth_oidc: adapt to be compatible with jwcrypto<1 (#66438)
#10

Mis à jour par Transition automatique il y a presque 2 ans

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

Mis à jour par Transition automatique il y a plus d'un an

Automatic expiration

Formats disponibles : Atom PDF