Projet

Général

Profil

Bug #6446

Étendre l'action d'appel à un webservice

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

Statut:
Fermé
Priorité:
Haut
Assigné à:
-
Version cible:
-
Début:
08 février 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

L'action de webservice est insuffisante pour les besoins de l'API de paiement; je verrais au moins les ajouts suivants :

  • possibilité de signer l'URL
  • inclure dans le json transmis l'url du formdata
    • peut-être en ajoutant un champ (de type WidgetDict) "paramètres supplémentaires" (?)

Fichiers

Révisions associées

Révision 6c042eca (diff)
Ajouté par Frédéric Péters il y a environ 9 ans

workflow: make it possible to sign webservice calls (#6446)

The sign_* functions have been imported from cmsplugin_blurp.

Révision 12290e33 (diff)
Ajouté par Frédéric Péters il y a environ 9 ans

workflow: make it possible to sign webservice calls (#6446)

The sign_* functions have been imported from cmsplugin_blurp.

Révision 317acaf8 (diff)
Ajouté par Frédéric Péters il y a environ 9 ans

workflow: make it possible to sign webservice calls (#6446)

The sign_* functions have been imported from cmsplugin_blurp.

Révision 0bf6525f (diff)
Ajouté par Frédéric Péters il y a environ 9 ans

workflow: make it possible to sign webservice calls (#6446)

The sign_* functions have been imported from cmsplugin_blurp.

Révision 1e2200b9 (diff)
Ajouté par Frédéric Péters il y a environ 9 ans

workflow: make it possible to sign webservice calls (#6446)

The sign_* functions have been imported from cmsplugin_blurp.

Révision dc65fd5b (diff)
Ajouté par Frédéric Péters il y a environ 9 ans

workflow: make it possible to sign webservice calls (#6446)

The sign_* functions have been imported from cmsplugin_blurp.

Historique

#1

Mis à jour par Thomas Noël il y a environ 9 ans

(et là je me dis, mettre tout cette config au fond d'actions de workflow, ça me plait de moins en moins...)

#2

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

Je ne comprends pas. Cela étant une autre option que je vois c'est de maximiser la configuration "par défaut" (i.e. signer l'url, y mettre l'info de l'utilisateur, ajouter des données au json, etc.).

#3

Mis à jour par Thomas Noël il y a environ 9 ans

Juste ce que je pensais, mais que j'aurais dû dire ailleurs et autrement : on devrait configurer les appels webservices ailleurs (des objets du paramétrages, genre "Création d'un item dans le panier du portail citoyen", configuré une fois pour toute) ; et y faire référence dans les actions de workflow.

Ceci étant, en attendant, si on maximise la configuration "par défaut", ne pas le faire pour les ws déjà existants.

#4

Mis à jour par Thomas Noël il y a environ 9 ans

et ça : « peut-être en ajoutant un champ (de type WidgetDict) "paramètres supplémentaires" (?) », j'ai pas bien compris

#5

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

Juste ce que je pensais, mais que j'aurais dû dire ailleurs et autrement : on devrait configurer les appels webservices ailleurs (des objets du paramétrages, genre "Création d'un item dans le panier du portail citoyen", configuré une fois pour toute) ; et y faire référence dans les actions de workflow.

Ok; un niveau d'indirection supplémentaire; ça pourrait aller dans un autre ticket.

Ceci étant, en attendant, si on maximise la configuration "par défaut", ne pas le faire pour les ws déjà existants.

Le seul endroit où il y a un POST du formdata, ça doit être le cg14, non ? Ce serait vraiment sensible à l'apparition de clés supplémentaires dans le json transmis ? Et/ou dans l'URL ?

peut-être en ajoutant un champ (de type WidgetDict) "paramètres supplémentaires" (?)

Dans la configuration, avoir un widget permettant d'entrer des clés / valeurs (WidgetDict, comme dans "Règle de correspondance des attributs pour le statut administrateur"), pour avoir :

  Paramètres supplémentaires
   | source_url  |   :  | [form_url]        |
   | amount      |   :  | [form_var_amount] |
   <add new line>
#6

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

Un premier élément pour permettre de signer l'URL, c'est le plus important; le reste on peut toujours remplir la query string avec.

#7

Mis à jour par Thomas Noël il y a environ 9 ans

Au lieu d'un request_signature_key je pensais qu'on irait chercher une clé dans le api-secrets de site_options ? c-à-d plutôt demander une "request_signature_orig" et utiliser quelque chose comme:

key = get_publisher().get_site_option(self.request_signature_orig, 'api-secrets')
sign_url(url, key)

C'est peut-être une mauvaise idée, je ne sais pas.

#8

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

Je préfère ne pas toucher au site-options.cfg ici mais j'ai trop la flemme pour intelligemment en développer les raisons :/ (pas devoir toucher un fichier sur le fs quand on écrit un workflow, éviter une confusion entrant/sortant pour les clés du fichier)

#9

Mis à jour par Thomas Noël il y a environ 9 ans

Heu non, mon idée était plutôt : on a déjà des clés dans le site-options, on les utilise. Uniquement en lecture, comme quand on vérifie une signature.

#10

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

Oui, quand j'écrivais "ne pas toucher au site-options.cfg", je n'imaginais pas avoir wcs écrire dedans, mais qu'on ait à demander à l'auteur du workflow, devant appeler un ws quelconque, d'aller écrire dans le fichier.

#11

Mis à jour par Thomas Noël il y a environ 9 ans

Ok. Actuellement je fais utiliser à Victor des ...&apikey=[bidule_key] dans les URL d'appel, ce qui permet d'éviter à Victor de connaitre les clés, et surtout simplifie beaucoup les copies de workflow d'un site à l'autre. C'est ce comportement que je voudrais conserver.

#12

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

Et ce patch, mais permettre au paramétrage de request_signature_key de contenir une référence, genre [bidule_key] ?

#13

Mis à jour par Thomas Noël il y a environ 9 ans

Oui, tout simplement ; bonne idée.

#15

Mis à jour par Thomas Noël il y a environ 9 ans

Ack

#16

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

  • Statut changé de En cours à Résolu (à déployer)
commit 5d14ce6f0ac22cec7e4f2a00fd2e10b125a7afa8
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Wed Feb 25 14:26:49 2015 +0100

    tests: add basic testing of wscall workflow

commit dc65fd5b7bf2551e5ba02e3cc823507a7579ce60
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Mon Feb 9 20:06:05 2015 +0100

    workflow: make it possible to sign webservice calls (#6446)

    The sign_* functions have been imported from cmsplugin_blurp.
#17

Mis à jour par Thomas Noël il y a plus de 8 ans

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

Formats disponibles : Atom PDF