API REST problema con session actual - AYUDA DESESPERADO

87 views
Skip to first unread message

David López Fernández

unread,
Mar 24, 2017, 11:16:39 AM3/24/17
to Sakai - Spanish
Hola a todos, espero tener suerte, ahi va mi problema:

Resulta que quiero obtener todos mis sitios y todas mis tareas a través de una consulta a la api rest de sakai. El problema viene al intentar mantener la sesión de usuario. Los pasos que sigo son:

Peticion POST: URLSAKAI/direct/session?_username=USUARIO&_password=CONTRASEÑA que me retorna el ID de la sessión.

Ahora en la siguiente petición realizo la comprobación para ver si existe la sesión con:

URLSAKAI/direct/session/ID_SESSION

y aquí es donde tengo el problema, a veces me retorna el usuario logueado, pero otras veces me devuelve un error 404. Esto es lo extraño
¿Qué puede estar ocurriendo? También he probado con: URLSAKAI/direct/user/current.json?sakai.session=ID_SESSION pero ocurre lo mismo, aveces reconoce la sesión a veces no.

La instalación sakai es 11, y es la siguiente: https://aulavirtual.um.es/direct/describe

La implementación está hecha en PHP. Se puede comprobar el scrip en linea en la siguiente url: http://lynxsimulations.com/sakai.php 
El código del script se adjunta(sin pass)

Para finalizar decir que con Postman ( un REST CLI) funciona correctamente, debe ser algún detalle.
sakai.php

JUAN JOSé MEROñO SáNCHEZ

unread,
Mar 27, 2017, 3:38:01 AM3/27/17
to sakai-...@apereo.org

Hola David,

    Soy Juanjo, miembro del equipo de desarrollo y administración de "AulaVirtual" en ATICA.

    Tu problema reside en el balanceo de carga. AulaVirtual reside en varios servidores que mantienen la sesión de forma individualizada, por lo que es necesario que una vez que obtienes una sesión el balanceador te dirija siempre a la instancia en la que reside tu sesión. Para ello se utiliza una cookie que se envía en la cabecera de la petición http, llamada JSESSIONID. Sin esta cabecera el balanceador te puede redirigir a cualquier instancia, por eso unas veces te funciona y otras veces no (sólo te funciona si el balaceador te envía a la instancia con tu sesión).

    Para conseguir que te funcione añade en todas las peticiones que sucedan a la de login la cookie "JSESSIONID" en la cabecera con el valor de la sesión obtenido, además eso te evitará tener que enviar ese identificador como parámetro, por ejemplo al invocar a "/direct/user/current.json".

    Si tienes otros problemas no dudes en contactar con nosotros, estaremos encantados de ayudarte en tu proyecto desde ATICA.

Un saludo.

PD: Ya hemos visto que enviaste por error tus credenciales en un primer correo, pero las has cambiado muchas gracias por preocuparte por tu seguridad y la de todos :)
--
Has recibido este mensaje porque estás suscrito al grupo "Sakai - Spanish" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a sakai-spanis...@apereo.org.
Para publicar en este grupo, envía un correo electrónico a sakai-...@apereo.org.
Visita este grupo en https://groups.google.com/a/apereo.org/group/sakai-spanish/.


David López Fernández

unread,
Apr 20, 2017, 4:34:54 AM4/20/17
to Sakai - Spanish
Hola de nuevo, todavía no me ha sido posible mantener la sesión actual, envio la cookie en las cabeceras y no se resuelve el problema. ¿alguien me puede aportar algo? Cualquier ayuda es buena

Daniel Merino

unread,
Apr 20, 2017, 5:13:23 AM4/20/17
to sakai-...@apereo.org
Hola, David.

Mucho no te puedo ayudar porque de REST + PHP no sé nada, todo lo que he hecho ha sido con CXF + Java. Si no te importa cambiar de tecnologías puedo pasarte ejemplos.

Como consejos generales podrías intentar trabajar primero con un server sin balanceo de carga y cuando te funcione con la cookie de session, lo intentas con el que balancea. Los de QA no tienen balanceador y puedes entrar como admin y/o mirar los logs: http://nightly2.sakaiproject.org/ . Eso sí, los resetean cada cierto tiempo (los nightlies todas las noches), pero tienen usuarios preconfigurados para no tener que dar de alta todo.

Y podrías preguntar en la lista inglesa si alguien tiene ejemplos de uso de REST en PHP. Si los usan en producción, seguro que hay un balanceador en medio.

Siento no poder ser de más ayuda.
Salu2

El 20/04/17 a las 10:34, David López Fernández escribió:
--
Has recibido este mensaje porque estás suscrito al grupo "Sakai - Spanish" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a sakai-spanis...@apereo.org.
Para publicar en este grupo, envía un correo electrónico a sakai-...@apereo.org.
Visita este grupo en https://groups.google.com/a/apereo.org/group/sakai-spanish/.

--
Daniel Merino Echeverría
daniel...@unavarra.es
Gestor de E-learning - Centro Superior de Innovación Educativa.
Tfno: 948-168489 - Universidad Pública de Navarra.

David López Fernández

unread,
Apr 20, 2017, 6:23:03 AM4/20/17
to Sakai - Spanish
Gracias por su ayuda. Parece ser que lo he resuelto. El problema estaba en que necesitaba enviar dos cookies por el tema del balanceo, pero resulta que debía separarlas por un ; y un espacio, y yo me comía el espacio. De casualidad me encontré con la solución en la red. 

Gracias por su ayuda, espero que no me de mas problemas esto :)

Hans Rubio

unread,
Dec 23, 2019, 9:42:49 AM12/23/19
to Sakai - Spanish
Hola Juanjo, soy Hans de Chile, estoy teniendo problema con las cookies con la version 11.4 de sakai, te explico lo que pasa:

El problema parece ser con los archivos temporales del navegador, cuando limpio los archivos temporales del navegador no ocurre el error, hay errores raro por ejemplo no puedo visualizar la tarea (con un navegador especifico), pero ingreso con otro navegador si se abre la tarea, me tiene preocupado este tema ya que la plataforma se esta utilizando masiva mente por parte de la universidad. Adjunto una imagen de como me muestra la tarea al momento de abrir en un navegador con problema. Esto es lo que aparece a un usuario cuando no puede abrir una tarea, pero este error no todos los usuarios lo tienen.

error sakai  tarea.png


Saludos y gracias.


Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a sakai-...@apereo.org.
Reply all
Reply to author
Forward
0 new messages