Pregunta

Actualmente tengo un sistema de Ruby on Rails, y hay planes para portarlo a GWT. Antes de hacer esto, y las que quieren tener una prueba de concepto con una parte del sitio que está siendo escrito en GWT GWT para demostrar que se puede utilizar y mostrar el contenido actual. El flujo de datos en la porción GWT del sistema es como sigue:

  1. El cliente envía una llamada RPC al servidor GWT
  2. Servidor recibe llamada RPC, a continuación, realiza una solicitud Ajax equivalente al sistema de rieles
  3. Server genera un objeto Java a partir del resultado de la petición Ajax, pasa de nuevo al cliente

El problema que estoy corriendo en ahora es la gestión de los datos de sesión de usuario a través de ambos sistemas. Sólo tenemos 1 instancia de Tomcat, y que tiene su propio tipo de sesiones, y luego nuestro sistema de Ruby utiliza ActiveRecordStore a datos de la sesión en el almacén de la base de datos.

El problema aquí es que cuando las conversaciones sistema Tomcat con el sistema de Ruby, si el cliente GWT ha hecho una solicitud de inicio de sesión, el último usuario para iniciar sesión desde el sistema de GWT tiene todas las peticiones Ajax salientes que se realiza en el sistema de rieles como si son del usuario actual ya que las miradas del sistema Tomcat como un solo cliente a rieles.

De todas formas, ¿cómo lo hago de tal manera que si un usuario inicia una sesión con el sistema de Tomcat, el sistema de Ruby será consciente de esto y tener una sesión de equivalente de manera que a pesar de que el servidor Tomcat es un solo cliente a la misma, el sistema de rieles es consciente del hecho de que muchos usuarios diferentes están comunicando con él desde ese único cliente.

¿Fue útil?

Solución

creo que la mejor manera de resolver esto sería el uso de las cookies en lugar de una base de datos para almacenar la sesión. Carriles soportes de forma nativa, en realidad, es la tienda de galletas por defecto desde hace algún tiempo. La cookie en sí está firmada por un secreto servidor para evitar que el usuario la manipulación. Creo que la aplicación Rails utiliza Rubí cálculo de referencias a dump / cargar los datos de lo que podría tener para implementarlo en Java, o puede implementar su propio administrador de cookies en ambos lados con la misma idea.

También es posible que sólo tiene que utilizar el código Ruby de JRuby en la aplicación Java.

Otros consejos

No sé sobre RoR, pero en la mayoría de las tecnologías web sesiones se mantiene el uso de cookies. Si a preservar las cookies (para un usuario determinado) a través de múltiples llamadas desde el servidor Java para la instancia de RoR, usted debe estar todo bien.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top