API du serveur CDSLogin
Classes principales
La classe
ServiceServlet
est la servet qui reçoit les requêtes. Elle extrait les paramètres communs à toutes les requêtes (voir ci-dessous), puis demande à la classe
CommandHandler
d'exécuter la commande.
CommandHandler
analyse les autres paramètres, utilise les services de la classe
LoginServiceImpl
pour l'accès aux services de
CDSLoginInternal
, puis met en forme le résultat, dans une classe
Response
.
Paramètres communs à tous les points d'entrée
Ci-dessous sont listés les paramètres qui sont communs à toutes les commandes. La casse des noms des paramètres n'a aucune importance (contrairement aux paramètres spécifiques à chaque commande, qui eux doivent forcément être en minuscule) :
command
C'est le nom de la commande à exécuter. La liste des commandes connues est données un peu plus bas. La casse des noms des commandes n'a aucune importance. Ce paramètre est obligatoire.
format
Le format dans lequel les données seront renvoyées. Ce paramètre est optionnel. La casse n'a pas d'importance. La valeur par défaut est
xml
. Le seul autre format reconnu est
json
. Tous les exemples de résultat ci-dessous sont au format
json
.
Commandes reconnues
La plupart des commandes utilise le service du serveur
CdsLoginInternalApi.
Nom de la commande |
Commande CdsLoginInternalApi utilisée |
Commentaires |
activate |
activate |
Si le format est xml , une redirection a lieu après la commande. Si l'activation est réussie, c'est vers la page activatedDone.html , sinon c'est vers la page activatedError.html . |
resetPassword |
|
Cette commande est définie, mais n'est pas implémentée. C'est donc équivalent à une commande inconnue. |
login |
login |
Cette commande permet à un utilisateur de s'identifier. La commande prend 2 arguments obligatoire : username et password . Elle prend aussi un argument optionnel permanentConnection , dont la valeur doit true , pour qu'elle soit vraie. Si l'argument n'existe pas ou a une autre valeur que true , c'est la valeur false qui est assumée. |
anonymousUserId |
username |
|
sessionId |
|
Renvoie la session courante, ou en crée une nouvelle si nécessaire. |
getSessionInfo |
data |
Renvoie la session courante, ou en crée une nouvelle si nécessaire, puis utilise le service data, pour ajouter des informations sur l'utilisateur courant. Un commentaire dans le code dit que c'est «\x{202f}utilisé par le plugin jquery-UI développé par Grégory\x{202f}». |
userId |
username |
Valide le userId . Mais ça rend le userId lui-même, si l'utilisateur est valide. |
logout |
|
Invalide la session courante et mets à jour les cookies cdsUsername (vide), cdsPassword (vide) et cdsPermanentConnection (false). |
username |
username |
Ça a l'air de faire la même chose que la commande anonymousUserId . |
createUser |
createUser |
Ajoute l'argument ip lors de l'appel vers CDSLoginIntenal , en prenant request.getRemoteAddr() . |
data |
data |
|
askForNewPassword |
askForNewPassword |
|
preferences |
preferences |
|
prettyNames |
prettyNames |
|
updatePreferences |
updatePreferences |
|
changePassword |
updatePassword |
|
updateRole |
updateRole |
|
updateStatus |
updateStatus |
|
updateEmail |
updateEmail |
Pour un admin qui veut changer unilatéralement le mail d'un utilisateur |
usersAsItems |
users |
Renvoie la liste des utilisateurs au format json |
getUser |
users |
|
permanentConnection |
|
Renvoie true ou false selon la valeur du cookie indiquant si la connection est permanente |
isSessionAnonyme |
username |
Vérifie si le username est celui d'un compte anonyme |
newEmail |
newEmail |
Création d'une demande de changement d'email |
emailConfirmation |
confirmEmail |
Affiche une page HTML indiquant le résultat de la confirmation |
--
PascalWassong - 2017-01-16