Foros del Web » Programación para mayores de 30 ;) » Java »

Manejo de sessiones web

Estas en el tema de Manejo de sessiones web en el foro de Java en Foros del Web. Buenas tardes resulta que tengo dos aplicaciones en JSF las dos utilizan diferentes servlets. para ingresar a cualquiera de las dos aplicaciones necesito entrar a ...
  #1 (permalink)  
Antiguo 07/07/2009, 17:01
 
Fecha de Ingreso: julio-2009
Mensajes: 1
Antigüedad: 14 años, 9 meses
Puntos: 0
Manejo de sessiones web

Buenas tardes resulta que tengo dos aplicaciones en JSF las dos utilizan diferentes servlets.
para ingresar a cualquiera de las dos aplicaciones necesito entrar a la ventana de login despues de que el logueo fue satisfactorio se abre una nueva pagina con un ventana que muestra dichas aplicaciones .

Cuando yo selecciono una aplicacion se debe de abrir una nueva session web sin cerrar la actual porque la ventana que tiene las aplicaciones debe quedar abierta en todo momento.

El problema que tengo actualmente es que cuando abro una aplicacion y la abro mediante el javascript windows.open() se me esta quedando la misma session web.Hay alguna manera de decirle al servlet o al javascript que cuando abra la pagina cree una session nueva?
  #2 (permalink)  
Antiguo 08/07/2009, 01:21
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Manejo de sessiones web

Para poder tener una nueva sesión en una ventana diferente, lo que hay que configurar es el navegador para que mantenga un conjunto de cookies diferentes por ventana. No es algo que puedas controlar desde el servidor.

Otra manera sería pasar el identificador de sesion por parametro en vez de por cookie, pero es un tema bastante más complejo y que puede dar problemas de seguridad, así que no se suele recomendar.

En realidad el problema que tienes es que en web, dos aplicaciones diferentes significa dos contextos diferentes, y tu tienes definidos tus dos servlets en el mismo contexto web, así que el contenedor los considera a los dos como parte de la misma aplicación. Así que para tener dos aplicaciones, lo mejor es tener dos contextos web.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #3 (permalink)  
Antiguo 08/07/2009, 04:21
Avatar de elAntonie  
Fecha de Ingreso: febrero-2007
Mensajes: 894
Antigüedad: 17 años, 2 meses
Puntos: 10
Respuesta: Manejo de sessiones web

Cita:
Iniciado por GreenEyed Ver Mensaje
lo mejor es tener dos contextos web.
Me uno
  #4 (permalink)  
Antiguo 09/07/2009, 09:47
Avatar de ezefarina  
Fecha de Ingreso: junio-2009
Mensajes: 91
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Manejo de sessiones web

Cita:
Tener una lista en memoria con todos los usuarios cargados, PERSONALMENTE, me parece un poco redundante (sin desmerecer los comentarios anteriores). Confio plenamente en la opción que te da erlolialo. Yo desarrollé muchas aplicaciones web, y la solución que el te plantea, es muy similar a la que yo implementé en todos ellos. Si bien yo no uso JSP, lo hacía con Servlets. Entonces, checkeaba si estaba logueado, Si lo esta muestro la LogInView, si no, cargo la View que corresponda al request recibido. Y todos los Servlet extienden del servlet abstracto que contiene la lógica de esta, de mostrar una view u otra según corresponda.

En cuanto a la lógica para verificar si hay sesión abierta o no, hacía lo siguiente.
Al recibir el user y pass del logIn, checkeo, si estan OK, genero un hash, se lo pongo como cookie, y en una session que tiene de nombre el mismo hash, guardo el System.currentTimeMilis actual. Cada vez que recibo un request, obtengo el hash de la cookie, y llamo a la session por su nombre con el mismo hash. Si la session existe, todo ok. Si no existe, muestro la pagina de login. Si la cookie no existe, también muestro la página de logIn, y si pasó una hora de antiguedad de la session, le renueva el hash. Si pasó mas de una hora y media, lo hago logguearse de nuevo.

Entonces la session dura hasta que se cierre el browser, o bien, tras una hora y media de inactividad.

Desconozco la seguridad que debes implementar en tu sistema, pero esta es una buena opción que se aplica bastante en aplicaciones bussiness

Suerte!
Acabo de dar esta respuesta en otro post. Además de esto, podrías guardar en la session, en que aplicación se loggueo, y crear cookies de diferente nombre para cada logIn, que por ejemplo se llame <APP_NAME>SessionCookie

Suerte!
  #5 (permalink)  
Antiguo 09/07/2009, 12:02
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Manejo de sessiones web

Usar el mismo contexto para varias aplicaciones web no "escala" y no lo he visto usar nunca en aplicaciones mínimamente serias.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:43.