Page 1 sur 1

API axiscStubSetSecure

Posté : jeu. 19 oct. 2017, 06:00:31
par BJ
Bonjour,

je suis bloqué par un webservice pour configurer convenablement l'api axiscStubSecure car le fournisseur m'indique seulement que la communication se fait sous SSL avec un certificat que j'ai importé dans DCM et un mot de passe contenu dans un autre fichier dont l'extension est pfx. Que faire avec ce fichier? et quel paramètre dois je passer à l'API?

Merci si quelqu'un peut m'aider.

axiscStubSetSecure

Posté : jeu. 19 oct. 2017, 07:44:47
par cmasse

Code : Tout sélectionner

Après avoir ajouté

  /copy /QIBM/ProdData/OS/WebServices/V1/client/include/Axis.rpgleinc
  * qui contient
 D* axiscStubSetSecure...
 D*                 PR                  EXTPROC('axiscStubSetSecure')
 D* pStub                           *   Value
 D* pKeyRingFile                    *   Value OPTIONS(*STRING)
 D* pKeyRingSorP                    *   Value OPTIONS(*STRING : *NOPASS)
 D* pKeyRingLabel                   *   Value OPTIONS(*STRING : *NOPASS)
 D* pV2Cipher                       *   Value OPTIONS(*STRING : *NOPASS)
 D* pV3Cipher                       *   Value OPTIONS(*STRING : *NOPASS)
 D* pTLSv1Cipher                    *   Value OPTIONS(*STRING : *NOPASS)
 D* pTKSv11Cipher                   *   Value OPTIONS(*STRING : *NOPASS)
 D* pTKSv12Cipher                   *   Value OPTIONS(*STRING : *NOPASS) 
  * ce dernier paramètre permet une tolérance (date dépassée par ex.)
 D* pTolerate                       *   Value OPTIONS(*STRING : *NOPASS) 
   
  /free
   NONE = 'NONE' + x'00;
   TRUE = 'true' + x'00';

    if stub_create_convertTempServices;
      axiscStubSetSecure(WsStub.handle:
                        '/QIBM/USERDATA/ICSS/CERT/SERVER/DEFAULT.KDB': 
                        'motdepasse': 'label':NONE:NONE:NONE:NONE:x'00':TRUE);
                                                    // activation TLSv12 + tolérance
Si vous recevez HTTPTransportException: HTTPS transport error.GSKit Error is 428 - No certificate is available for SSL processing.
ne mettez rien en 3eme paramètre (remplacez motdepasse par une chaine vide)


Si vous avez des temps de réponses particulièrement longs, utilisez axiscStubSetTransportConnectTimeout(handle, nb-de-secondes)

Si vous rencontrez des problèmes, lancez une trace par axiscAxisStartTrace(’/tmp/axis.log’:*NULL) en début de pgm.
( axiscAxisStopTrace permet d'arrêter la trace)

Posté : jeu. 19 oct. 2017, 08:09:51
par BJ
merci, je vais essayer et j'attends le retour du fournisseur

Posté : jeu. 19 oct. 2017, 11:04:36
par BJ
En attendant la réponse du fournisseur, je finis de coder le programme et je m'aperçois que les noms des variables que je récupère sont super longs. Ils font 200 charactères de long par exemple. L'as/400 du client pour lequel on travaille est en V6R1 et mon programme est écrit en free. Comment puis je faire un eval avec un nom de variable aussi long?
J'ai essayé ceci:

Qte=Xreponse.RetourRecupererDonneesObjet.Dernieres
Releves_REF.PeriodePCEJJ_Ref.Releve
PCEJJ_Ref.array(I).Quantite_Ref.value;

mais ça ne passe pas à la compilation. Il donne des erreurs 7030 pour chaque ligne alors que le nom du champ est :
Xreponse.RetourRecupererDonneesObjet.DernieresReleves_REF.PeriodePCEJJ_Ref.RelevePCEJJ_Ref.array(I).Quantite_Ref.value;

Posté : mer. 25 oct. 2017, 06:24:35
par BJ
j'ai modifié le programme pour ajouter les paramètres indiqués mais j'ai une erreur de compil car trop de paramètres indiqués:

// Ouverture de la connexion du web service
if (stub_create_RecupererDonneesPCEService(xs_ds)= *On);
None = 'NONE' + x'00';
True = 'true' + x'00';
// établissement des paramètres de la connexion SSL
axiscStubSetSecure(xs_ds.handle:
RNF5407: Le nombre de paramètres transmis dans l'appel prototype est supérieur au nombre admis.
RNF5407: Le nombre de paramètres transmis dans l'appel prototype est supérieur au nombre admis.
RNF5407: Le nombre de paramètres transmis dans l'appel prototype est supérieur au nombre admis.
'/QIBM/USERDATA/ICSS/CERT/SERVER/DEFAULT.KDB':
' ':
NULLSTR:
NONE:
NONE:
NONE:
NONE:
x'00':
TRUE);

version 1.5 obsolete

Posté : lun. 06 nov. 2017, 08:02:48
par cmasse
problématique de version je pense (V6R10 je crois), il faut enlever des paramètres (en aveugle, la 610 n'étant plus maintenue) ou retrouver la doc de cette version.

Posté : lun. 06 nov. 2017, 08:15:53
par BJ
effectivement, le changement de version V7R3 normalement planifié pour 2018 devrait solutionner le problème.

Merci de votre aide