Glasnost

Identifiants, jetons et appels distants

Identifiants

Il existe trois sortes d'identifiants :

Jetons

ApplicationToken

Chaque application Glasnost (serveur ou client) se voit attribuer un jeton, l'ApplicationToken, lorsqu'elle se lance et qu'elle s'identifie auprès du Dispatcher.

Cette attribution se fait par la fonction getApplicationToken du Dispatcher (noter que cet appel se fait automatiquement lors du premier appel d'une fonction distante, il est donc inutile de le faire au début du programme).

Un ApplicationToken est une string constituée uniquement de chiffres aléatoires, par exemple 1234567890, qui est générée par la fonction servers/Dispatcher/Dispatcher.py/getApplicationToken().

Une fois qu'une application s'est vu attribuer un ApplicationToken, ce jeton est systématiquement passé en paramètre lors de tous les appels de fonctions distantes.

UserToken

Un UserToken est attribué à un utilisateur à chaque fois qu'il s'identifie auprès de l'AuthenticationServer.

Un UserToken a la forme glasnost://hosname/people/random_number. Par exemple glasnost://localhost/people/1234567890.

Le UserToken est calculé par la fonction servers/AuthenticationServer/AuthenticationServer.py/getUserIdAndTokenXmlRpc()

Attention, il ne faut pas confondre un UserToken avec un UserId (qui est un ObjectId avec un role = 'people'), bien qu'ils aient la même syntaxe. Par exemple, mon UserId sur www.entrouvert.org est glasnost://www.entrouvert.org/people/1 alors qu'à chaque fois que je m'identifierais j'aurais un UserToken différent ayant la forme glasnost://www.entrouvert.org/people/1234567890

ElectionToken et VoteToken

SessionToken

http://www.entrouvert.org/articles/1?sessionToken=1234567890.

Paramètres des appels distants

Tous les appels distants ont au minimum trois paramètres :

Le virtualServerId est un ServerId. Il indique de quel serveur virtuel on parle. Par exemple, supposons qu'on ait un serveur qui gère à la fois les site www.entrouvert.org et www.entrouvert.com. Si on veut récupérer le nombre de personnes ayant un compte sur www.entrouvert.org, il faut appeler la fonction getObjectsCount en lui passant comme virtualServerId le ServerId suivant : glasnost://wwww.entrouvert.org/people.

Le clientToken est l'ApplicationToken de l'application qui a lancé l'appel distant. Cela permet éventuellement au serveur de déterminer si l'application appelante a bien le droit de faire cet appel.

Le userToken est le jeton de l'utilisateur qui a lancé l'appel distant. Cela permet au serveur de vérifier que l'utilisateur a bien le droit de lancer cet appel.

Note : Tous les appels distants ont ces 3 paramètres, mais ceux-ci n'apparaissent pas, car ils sont ajoutés et enlevés automatiquement par l'API Glasnost.