12-01-2016 11:16 AM
Bonjour,
J'essaie de me dépatouiller pour pouvoir récupérer une liste de documents sur Alfresco au travers d'un serveur NodeJS qui fait abstraction.
Mes utilisateurs se connectent à l'API via
/alfresco/service/api/login?u={userName}&pw={password}
La page en question me retourne un ticket que je stocke en base de données et qui servira à chaque appel futur.
Par exemple, je récupère la liste des documents de la façon suivante:
/alfresco/api/-default-/public/cmis/versions/1.1/browser/root/Sites/{MonSite}?alf_ticket={ticket}
Cet appel fonctionne parfaitement pendant un certain temps (au moins une heure, mais je n'ai pas réussi à le caractériser exactement).
Au delà de cette période, l'API me renvoie une erreur 401 Unauthorzied qui laisse penser que le ticket n'est plus valide. Or périodiquement (chaque minute), je vérifie que le ticket est toujours valide en envoyant une requête à:
/alfresco/service/api/login/ticket/{ticket}?alf_ticket={ticket}
Si tout se passe bien, je dois récupérer le ticket d'origine.
Étonnement, lorsqu'un ticket renvoie une erreur 401, le fait de se connecter à nouveau ne corrige pas le problème.
Ma question est donc: Y-a-t-il une façon de garder une session ouverte indéfiniment ou de corriger ce problème ?
Merci d'avance de votre temps et bonne soirée.
12-01-2016 11:24 AM
Bonjour,
Le ticket d'authentification n'est pas éternel. Il a une durée de vie (un peu comme une session navigateur).
Lors d'une reconnection, un nouveau ticket est généré qui doit être utilisé durant sa période de validité.
En somme dans ce que vous avez décrit lors d'une reconnection, le ticket en base doit être mis à jour avec celui fournit lors de la nouvelle connection.
Yann
12-01-2016 12:16 PM
Bonjour,
J'effectue une reconnexion lorsque l'erreur 401 survient mais le ticket obtenu est le même que celui d'origine.
La requête de récupération des documents n'abouti donc pas, car la session semble toujours terminée malgré la reconnexion.
Merci.
12-02-2016 03:19 PM
Bonjour,
En effectuant quelque recherche j'ai trouvé le lien suivant : Ramesh Chauhan: Fast facts about alf_ticket for hassle free integration with Alfresco using REST API qui vous fournira des informations complémentaire (en anglais).
Typiquement les appels à "/alfresco/service/api/login/ticket" permet juste de vérifier la validité, s'il est expiré ou invalide cela ne va pas le rafraichir.
Il existe des configurations permettant d'agir sur le comportement du ticket d'authenfication, jetez un oeil au fichier community-edition/repository.properties at 2c1eff9953d3105e738f7b06ba9ba8a079ca4c24 · Alfresco/commu... qui contient lest valeurs par défaut utilisé par Alfresco.
Yann
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.