HttpSession y Pestañas del explorer y firefox

906 views
Skip to first unread message

Julio Sejtman

unread,
Jan 15, 2008, 1:49:57 PM1/15/08
to jav...@googlegroups.com
Hola a todos.
Tenemos desarrolladas unas aplicaciones web con struts y por abajo hibernate o jdbc directo, corren en tomcat.

El problema que nos surge es el siguiente, supongan estoy logueado trabajando en una de las aplicaciones con el internet explorer 7, trabajo lo mas bien, entro en session, laburo, cuando vence me saca de la aplicacion etc, es decir hasta ahi ningun problema, ahora, cuando mientras esta la session activa abrimos una pestaña en el explorer (en el firefox pasa lo mismo) y me logueo en la misma aplicacion, con el mismo usuario o con otro usuario, el objeto httpsession  de ambas "pestañas" se "mezcla" y las acciones de una de las pestañas pisa las acciones de la otra, mezclando los datos.

¿A alguien le paso algo parecido? ¿Alguien tiene idea de que puede estar pasando? ¿Como se puede solucionar, se les ocurre algo?

Muchas gracias

Saludos

Julio



Los referentes más importantes en compra/venta de autos se juntaron:
Demotores y Yahoo!. Ahora comprar o vender tu auto es más fácil.
Visitá http://ar.autos.yahoo.com/

Pablo E. Siciliano

unread,
Jan 15, 2008, 2:49:34 PM1/15/08
to jav...@googlegroups.com
Hola Julio,
 
En principio, tiene cierto sentido lo que te está pasando porque ambas pestañas comparten el id de sesión. Te va a pasar lo mismo cuando abrís una nueva ventana con la página anterior en cualquier navegador.
 
Hasta ahora no le encontré una solución mágica al asunto, la única que conozco es preveer que alguien puede abrir otra solapa o ventana y actuar en consecuencia. En la práctica (Hasta adonde me parece razonable por lo menos, por ahí a alguien se le ocurre algo y me desmiente) no podés dar por supuesto que los valores de HttpSession en determinado lugar, sino que los tenés que validar cada vez que los vas a usar.
 
Saludos.
 
Pablo.

Jose Mora Fallas

unread,
Jan 15, 2008, 3:01:21 PM1/15/08
to jav...@googlegroups.com
Eso te va a pasar siempre, por el hecho de que se crea una sessión no por pestaña, sino por el navegador, recuerda la jerarquía
Browser, document, form, etc, eso te pasaría aún si no habrieras otra pestaña, es decir si abrieras dos instancias del navegador te pasaría lo mismo.

Te puedo recomendar  cosas, que en lugar de objetos en la sessión pases los valores en variables (lo cual no es nada recomendable, pues es inseguro), que no logueen 2 usuarios al mismo tiempo, y finalmente que si quieres que se loguen varios usuarios a la vez, habras diferentes marcas de navegadores, 1 por cada usuario.

Como vez la opción mas segura es inicar un usuario a la vez.

El día 15/01/08, Julio Sejtman <sej...@yahoo.com.ar > escribió:



--
_________________________
Jose Manuel Mora Fallas
www.acto.go.cr

Diego Alvaro Pereira

unread,
Jan 15, 2008, 3:39:36 PM1/15/08
to jav...@googlegroups.com
La solución es simple.
 
No dejes que dos usuarios se puedan loggearse en el mismo navegador, simplemente no mostrando la pantalla de login cuando hay sesión activa.
 
Yendo más lejos aún, el hecho de que dos usuarios trabajen en la misma PC con dos sesiones diferentes abiertas al mismo tiempo va en contra de cualquier tipo de seguridad.
Automáticamente quita el sentido de un login de usuario porque cualquier de los dos podría utilizar la sesión abierta de la otra persona atentando contra la identidad en el sistema (lo cual es el sentido de tener login).
 
Saludos,
Diego

 

Ernesto De Santis

unread,
Jan 15, 2008, 4:31:32 PM1/15/08
to jav...@googlegroups.com
Con propósitos de debug, hace un tiempo busqué si se podía tener varias
sesiones en un mismo navegador. Algún plugin para firefox o truco... No
encontré la solución. Se hace muy molesto cuando tenés que testar algo y
necesitás varios usuarios logados. Sólo teniendo uno en cada navegador,
uno por firefox, otro por IE...

Si alguien sabe de algún truco para eso, agradecido.

Ernesto.

Diego Alvaro Pereira escribió:


> La solución es simple.
>
> No dejes que dos usuarios se puedan loggearse en el mismo navegador,
> simplemente no mostrando la pantalla de login cuando hay sesión activa.
>
> Yendo más lejos aún, el hecho de que dos usuarios trabajen en la misma
> PC con dos sesiones diferentes abiertas al mismo tiempo va en contra
> de cualquier tipo de seguridad.
> Automáticamente quita el sentido de un login de usuario
> porque cualquier de los dos podría utilizar la sesión abierta de la
> otra persona atentando contra la identidad en el sistema (lo cual es
> el sentido de tener login).
>
> Saludos,
> Diego
>
>

> On 1/15/08, *Jose Mora Fallas* <josemor...@gmail.com

> <mailto:josemor...@gmail.com>> wrote:
>
> Eso te va a pasar siempre, por el hecho de que se crea una sessión
> no por pestaña, sino por el navegador, recuerda la jerarquía
> Browser, document, form, etc, eso te pasaría aún si no habrieras
> otra pestaña, es decir si abrieras dos instancias del navegador te
> pasaría lo mismo.
>
> Te puedo recomendar cosas, que en lugar de objetos en la sessión
> pases los valores en variables (lo cual no es nada recomendable,
> pues es inseguro), que no logueen 2 usuarios al mismo tiempo, y
> finalmente que si quieres que se loguen varios usuarios a la vez,
> habras diferentes marcas de navegadores, 1 por cada usuario.
>
> Como vez la opción mas segura es inicar un usuario a la vez.
>

> El día 15/01/08, *Julio Sejtman* <sej...@yahoo.com.ar
> <mailto:sej...@yahoo.com.ar>> escribió:


>
> Hola a todos.
> Tenemos desarrolladas unas aplicaciones web con struts y por
> abajo hibernate o jdbc directo, corren en tomcat.
>
> El problema que nos surge es el siguiente, supongan estoy
> logueado trabajando en una de las aplicaciones con el internet
> explorer 7, trabajo lo mas bien, entro en session, laburo,
> cuando vence me saca de la aplicacion etc, es decir hasta ahi
> ningun problema, ahora, cuando mientras esta la session activa
> abrimos una pestaña en el explorer (en el firefox pasa lo
> mismo) y me logueo en la misma aplicacion, con el mismo
> usuario o con otro usuario, el objeto httpsession de ambas
> "pestañas" se "mezcla" y las acciones de una de las pestañas
> pisa las acciones de la otra, mezclando los datos.
>
> ¿A alguien le paso algo parecido? ¿Alguien tiene idea de que
> puede estar pasando? ¿Como se puede solucionar, se les ocurre
> algo?
>
> Muchas gracias
>
> Saludos
>
> Julio
>
>

> ------------------------------------------------------------------------


>
> Los referentes más importantes en compra/venta de autos se
> juntaron:
> Demotores y Yahoo!. Ahora comprar o vender tu auto es más fácil.
> Visitá http://ar.autos.yahoo.com/
>
>
>
>
>
> --
> _________________________
> Jose Manuel Mora Fallas

> www.acto.go.cr <http://www.acto.go.cr/>
>
>
> >

Patricio Keilty

unread,
Jan 15, 2008, 6:36:16 PM1/15/08
to jav...@googlegroups.com
2008/1/15 Pablo E. Siciliano:

Hola Julio,
 
En principio, tiene cierto sentido lo que te está pasando porque ambas pestañas comparten el id de sesión. Te va a pasar lo mismo cuando abrís una nueva ventana con la página anterior en cualquier navegador.
 
Hasta ahora no le encontré una solución mágica al asunto, la única que conozco es preveer que alguien puede abrir otra solapa o ventana y actuar en consecuencia. En la práctica (Hasta adonde me parece razonable por lo menos, por ahí a alguien se le ocurre algo y me desmiente) no podés dar por supuesto que los valores de HttpSession en determinado lugar, sino que los tenés que validar cada vez que los vas a usar.

Pablo,
es cierto lo que decís, pero hay algo que no termino de comprender, Julio podías explicar mejor este comportamiento??


me logueo en la misma aplicacion, con el mismo usuario o con otro usuario, el objeto httpsession  de ambas "pestañas" se "mezcla" y las acciones de una de las pestañas pisa las acciones de la otra, mezclando los datos.

lo cuál es entendible si se trata del mismo usuario, pero siendo otro usuario..cómo es posible??

saludos,
--p

Pablo Ruggia

unread,
Jan 16, 2008, 4:19:27 PM1/16/08
to jav...@googlegroups.com
Todas las ventanas de Firefox que abras, TODAS, van a compartir la mismas sesiones por defecto.
Por que ? Porque guardas las sesiones usando cookies, la cookie tiene un nombre, podes tener solo una cookie por cada nombre y por lo tanto cuando el browser envia un request, le dice, soy la session tal, casualmente la misma.
La unica manera de hacer que esto funcione es usar url rewriting, o sea, escribir el jsessionid en tooooooooooodas las urls que uses y no usar cookies, de esta manera cada vez que abris la app, en un tab o ventana distinta vas a empezar con una session distinta porque no se la pasaste en ninguna url. Ojo, es medio quilombo manejar esto, asique pensa bien si es un requerimiento de tu app bancar distintas sesiones en distintos tabs antes de cambiar el 90% de tu app.
Te dejo un link para que mires:
http://www.developertutorials.com/tutorials/java/implement-session-tracking-050611/page5.html

Saludos !

2008/1/15 Patricio Keilty <patrici...@gmail.com>:

Diego Alvaro Pereira

unread,
Jan 16, 2008, 9:35:05 PM1/16/08
to jav...@googlegroups.com
Para eso hay herramientas de QA que pueden abrir y testear todas las
sesiones concurrentes que quieras...
Hacer ese trabajo manualmente es una locura.

Saludos,
Diego

----- Original Message -----
From: "Ernesto De Santis" <eds_...@yahoo.com.ar>
To: <jav...@googlegroups.com>

Nicolas Barrera

unread,
Jan 17, 2008, 6:34:39 AM1/17/08
to jav...@googlegroups.com
Respecto a distintas instancias de un mismo navegador,

nose porque tenia en claro que dos instancias de firefox distintas compartian la misma sesion, pero dos instnacias de internet explorer (por lo menos hasta el 6) no compartian la misma sesion sino que usaban dos distintas...

esto creo que lo lei en algun lado y lo probe y era asi.., pero como justo ahora no lo puedo probar para estar bien bien seguro.., lo dejo como picando...

creo que era asi...

salu2.-

Hernan Yamakawa

unread,
Jan 17, 2008, 2:49:36 PM1/17/08
to JavaSOS
Hace un tiempo tuve la misma experiencia, mi aplicación debía poder
correr en la misma máquina e instancia del browser en diferentes tabs,
uno para cada usuario. Usando el manejo de sesión por cookies me
pasaba exactamente lo que contas, la solución fue usar manejo de
sesión a través de URL rewriting, como la aplicación usaba Struts,
simplemente tuve que reescribir los links con el tag <html:rewrite>
que se encarga de realizar un append del jsessionid y asi manejar el
URL rewriting, tenes que tener cuidado de no olvidarte de ninguna url,
ya que si el usuario fuera por algún link que no fue reescrito,
perdería la sesión. Además de realizar esto, tuve que configurar al
Tomcat para que no utilice el manejo de sesión x cookies.

Espero que te sea de ayuda. Saludos.

On 15 ene, 15:49, Julio Sejtman <sejt...@yahoo.com.ar> wrote:
> Hola a todos.
> Tenemos desarrolladas unas aplicaciones web con struts y por abajo hibernate o jdbc directo, corren en tomcat.
>
> El problema que nos surge es el siguiente, supongan estoy logueado trabajando en una de las aplicaciones con el internet explorer 7, trabajo lo mas bien, entro en session, laburo, cuando vence me saca de la aplicacion etc, es decir hasta ahi ningun problema, ahora, cuando mientras esta la session activa abrimos una pestaña en el explorer (en el firefox pasa lo mismo) y me logueo en la misma aplicacion, con el mismo usuario o con otro usuario, el objeto httpsession de ambas "pestañas" se "mezcla" y las acciones de una de las pestañas pisa las acciones de la otra, mezclando los datos.
>
> ¿A alguien le paso algo parecido? ¿Alguien tiene idea de que
> puede estar pasando? ¿Como se puede solucionar, se les ocurre algo?
>
> Muchas gracias
>
> Saludos
>
> Julio
>
> Los referentes más importantes en compra/ venta de autos se juntaron:
> Demotores y Yahoo!
> Ahora comprar o vender tu auto es más fácil. Vistá ar.autos.yahoo.com/

Domingo Suárez Torres

unread,
Jan 20, 2008, 12:33:40 AM1/20/08
to jav...@googlegroups.com
Hola,

Este post les puede servir para aclarar algunas cosas:


Saludos

El día 17/01/08, Hernan Yamakawa <hernan....@gmail.com> escribió:



--
domix
Reply all
Reply to author
Forward
0 new messages