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.
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
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.
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
Content from pre 2016 and from language groups that have been closed.
Content is read-only.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.