Pour les appels REST-like, une authentification avec un compte valide au sein d’une licence Sell&Sign est requise. L’authentification peut être réalisée de 2 façons différentes :
- par l’utilisation d’un token en paramètre
- par l’utilisation d’un token en entête
Il est bien sûr possible d’opérer simplement dans le cadre d’une session HTTP authentifiée.
Activer votre licence
Afin d’obtenir votre token d’authentification, vous devez disposer d’une licence valide de SELL&SIGN en ligne.
Authentification en paramètre d’URL
Pour utiliser ce mode d’authentification, vous devez ajouter le paramètre j_token à votre requête comme ceci :
https://<host>/calinda/hub/selling/model/<class>/<action type>?action=<method>&<parameters>&j_token=<token URL encodé>
Attention : pour passer des éléments en URL, ils doivent être URLencodés. Par exemple, la chaîne
!kYRv81H|bWEt8lwzntUmeaWeZ6Q7Zh7RKLxGlOny
devient
%21kYRv81H%7CbWEt8lwzntUmeaWeZ6Q7Zh7RKLxGlOny
Si besoin, vous trouverez ici un service en ligne permettant d’URLencoder une chaîne de caractères.
Exemple :
https://cloud.sellandsign.com/calinda/hub/selling/model/signaturemode/list?action=getSignatureModesFor&contract_definition_id=8&j_token=%21kYRv81H%7CbWEt8lwzntUmeaWeZ6Q7Zh7RKLxGlOny
Authentification en en-tête HTTP
Pour utiliser ce mode d’authentification, une manipulation de l’entête HTTP est nécessaire afin d’ajouter l’entête j_token.
En JavaScript, il est possible via l’objet Ajax de jquery de modifier l’entête. Sur les paramètres de configuration de l’appel ajax ($.ajax), on peut ajouter l’attribut beforeSend auquel on va attribuer une fonction que l’on va nommer setHeader. Elle recevra en paramètre un objet xhr sur lequel nous affecterons la valeur de notre entête en utilisant la fonction setRequestHeader.
Exemple :
$.ajax({
...
beforeSend: setHeader,
...
});
function setHeader(xhr) {
xhr.setRequestHeader('j_token', 'abcde|RH/YgwxB4LA3jJ1gi9m6JF7iFnK/JKbT');
}
En Java, en utilisant la librairie Apache HTTP Client, on peut appeler la méthode setHeader des objets HttpPost ou HttpGet.
Exemple :
HttpPost post = new HttpPost(resolveURL(method));
post.setHeader("j_token", my_token);