Projet

Général

Profil

Bug #8109

Erreur de signature de la requete lors d'un appel d'un webservice

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
-
Début:
24 août 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Trace:

character mapping must return integer, None or unicode

La même chose que dans #7866


Fichiers

0001-fix-urls-signing-key.patch (719 octets) 0001-fix-urls-signing-key.patch Serghei Mihai (congés, retour 15/05), 24 août 2015 15:30
0001-fix-urls-signing-key-8109.patch (765 octets) 0001-fix-urls-signing-key-8109.patch Serghei Mihai (congés, retour 15/05), 24 août 2015 16:16

Révisions associées

Historique

#1

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

#2

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

C'est un truc que je trouvais aussi du côté du Passerelle mais j'avais trouvé plus important d'y insister sur les tests.

Mais ici, discutons du patch, et simplement, hash = hmac.HMAC(str(key), digestmod=digestmod, msg=s), et voilà l'affaire réglée, non ?

#3

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

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

Mais ici, discutons du patch, et simplement, hash = hmac.HMAC(str(key), digestmod=digestmod, msg=s), et voilà l'affaire réglée, non ?

Ça ne fonctionnera pas si key aura la valeur u'clé', par exemple.

#4

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

Mais est-ce une valeur qu'on y autorise ? (ma suggestion partait bien sûr de l'idée qu'on se limitait à de l'ascii dans key).

#5

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

Au niveau du code rien n'empeche la variable contenir de l'unicode(ça peut venir d'un formulaire du manage dans combo, par exemple).
Si on se dit qu'on n'y mets que de l'ascii, ton idée de patch est la bonne.
Le voici à jour.

#6

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

Je ne vois pas où dans combo on définirait une secret_key, il faudrait, si c'est ce qu'on veut, n'y autoriser que de l'ascii.

#7

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

J'ai sorti l'exemple de combo au pif.
Plus concretement, ça peut venir des variables définies dans hobo.

#8

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

Ma question était "est-ce une valeur qu'on y autorise ?" et la réponse permet de déterminer si on peut faire un simple str(), ou pas. Il me semblait, mon idée, c'était qu'on se limitait à de l'ascii. Tu sembles penser qu'on n'a pas cette garantie, qu'on laisse des gens y placer des valeurs arbitraires.

#9

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

Je ne sais pas pour combo mais coté passerelle on peut mettre de l'unicode dans ApiUser.key (CharField)... et on aura le même problème qu'ici avec passerelle/base/signature:sign_string(); je penche plutôt en faveur d'un validators=[ASCIIValidator()] sur les champs de clé mais le .encode('utf-8') me va aussi.

#10

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

Benjamin Dauvergne a écrit :

Je ne sais pas pour combo mais coté passerelle on peut mettre de l'unicode dans ApiUser.key (CharField)... et on aura le même problème qu'ici avec passerelle/base/signature:sign_string(); je penche plutôt en faveur d'un validators=[ASCIIValidator()] sur les champs de clé mais le .encode('utf-8') me va aussi.

Dépôt passerelle pas à jour chez moi, pas vu que c'était corrigé aussi.

#11

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

Mais donc, soit on se dit qu'on se limite à de l'ascii, et on prend le str() et on met des validateurs là où il faut, soit pas.

#12

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

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

Mais donc, soit on se dit qu'on se limite à de l'ascii, et on prend le str() et on met des validateurs là où il faut, soit pas.

Dans les variables hobo je trouve qu'il sera difficile d'imposer de l'ascii uniquement vu qu'on ne fait pas de différence entre, disons, le titre du portail citoyen("Orléans" par exemple)et la clef de signature.
Je penche, donc sur mon patch initial, comme celui dans passerelle.

#13

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

Mais on parle pas d'hobo, là. Dans hobo, le secret_key, il est généré.

#14

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

Oui ça sent le blurp défini dans du JSON. À part les champs de modèle c'est la seule source d'unicode que je vois (à moins de se faire chier à mettre un u'xxx' dans un settings.py mais bon là...).

#15

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

J'ai vu ici https://hobo.fsb.dev.entrouvert.org/environment/ une variable Clef de signature des webservices Teamnet, mais j'imagine que ce n'est pas la bonne façon de faire.
Pour avancer je propose de commiter la suggestion de patch de Fred.

#16

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

Si c'est la bonne façon de faire, pour l'instant. Je pense que ce qu'on devrait viser à l'avenir c'est de créer un APIUser dans passerelle pour chaque instance définie par hobo. Comme APIUser.key on utiliserait la secret_key du service. La seule action humaine serait alors d'associer une instance à un web-service dans Passerelle pour lui ouvrir l'accès. Dans w.c.s. et combo on saurait automatiquement quelle clé utiliser.

#17

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

Benjamin Dauvergne a écrit :

Si c'est la bonne façon de faire, pour l'instant. Je pense que ce qu'on devrait viser à l'avenir c'est de créer un APIUser dans passerelle pour chaque instance définie par hobo. Comme APIUser.key on utiliserait la secret_key du service. La seule action humaine serait alors d'associer une instance à un web-service dans Passerelle pour lui ouvrir l'accès. Dans w.c.s. et combo on saurait automatiquement quelle clé utiliser.

Je suis d'accord.
Je propose de pousser mon dernier patch

#18

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

  • Statut changé de Nouveau à Résolu (à déployer)
commit 2b77f08c17d2884a81c053bce67872078b249054
Author: Serghei Mihai <smihai@entrouvert.com>
Date:   Thu Jul 30 18:10:38 2015 +0200

    fix urls signing key (#8109)
#19

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

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

Formats disponibles : Atom PDF