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

Controlar un solo inició de session en una aplicacion web

Estas en el tema de Controlar un solo inició de session en una aplicacion web en el foro de Java en Foros del Web. cordial saludo... como se seria la forma de controlar el acceso o inicio de session a aplicacion web..donde el usuario solo pueda iniciar una sola ...
  #1 (permalink)  
Antiguo 07/07/2009, 17:41
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
Controlar un solo inició de session en una aplicacion web

cordial saludo...
como se seria la forma de controlar el acceso o inicio de session a aplicacion web..donde el usuario solo pueda iniciar una sola session...
si intenta logearse de nuevo que cierre la anterior sesion o que le salga un mensage que diga que ya hay una session con este usuario....
  #2 (permalink)  
Antiguo 07/07/2009, 19:12
Avatar de DiabloGuardian  
Fecha de Ingreso: noviembre-2008
Ubicación: Hidalgo
Mensajes: 215
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Controlar un solo inició de session en una aplicacion web

antes de buscar por ejemplo en una base de datos a tu usuario revisas si la session es diferente de nulo y de ahi haces lo que quieras. no tengo a la mano el ejemplo pero lo busco y luego lo pongo aca, pero por mientras ojala y te de una idea esto

saludos
__________________
-=:[ Lo importante no es saber todo, sino saber buscar ]:=-
  #3 (permalink)  
Antiguo 08/07/2009, 01:26
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Controlar un solo inició de session en una aplicacion web

El objeto que es común a todas las sesiones en una aplicación web es el contexto. Si guardas ahí, o en algún objeto referenciado desde ahí, una lista de los usuarios que tienen abierta una sesión, podrás comprobar que no te abren dos.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #4 (permalink)  
Antiguo 08/07/2009, 11:04
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Controlar un solo inició de session en una aplicacion web

Tenes razon..pero la verdad no se como hacerlo..pues yo valido si ha iniciado session preguntado si esta es null o no... el problem es como acceder a las otras session a ver si ya hay una con el usuario en cuestion..
  #5 (permalink)  
Antiguo 08/07/2009, 12:10
 
Fecha de Ingreso: mayo-2009
Mensajes: 72
Antigüedad: 15 años
Puntos: 0
Respuesta: Controlar un solo inició de session en una aplicacion web

Otra solucion posible es detectar al inicio si ese usuario esta logado, y si lo está, que aparezca un enlace directo a su espacio personal, y si no esta logado que aparezca la opcion de login.

Al principio pones:
Código:
<%
            if (request.getSession().getAttribute("administrador")==null && request.getSession().getAttribute("usuarioRegistrado")==null) {

%>
--------------formulario de login-----------------
<% } else { %>

-----------------acceso directo al espacio personal.--------------------
Al hacer login como administrador o como usuario habra que modificar las variables de sesion anteriores para que sean != null
  #6 (permalink)  
Antiguo 08/07/2009, 12:35
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Controlar un solo inició de session en una aplicacion web

Repito, no puedes acceder a las otras sesiones, pero todas comparten el contexto ( ServletContext ) y ahí puedes guardar cosas... como una lista de usuarios que tienen sesion abierta. Y puedes hacer comprobaciones contra esa lista, compartida entre todas las sesiones.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #7 (permalink)  
Antiguo 09/07/2009, 07:18
 
Fecha de Ingreso: febrero-2004
Mensajes: 13
Antigüedad: 20 años, 2 meses
Puntos: 0
Respuesta: Controlar un solo inició de session en una aplicacion web

Gracias..voy a investigar todo sobre ServletContext....
  #8 (permalink)  
Antiguo 09/07/2009, 09:16
Avatar de ezefarina  
Fecha de Ingreso: junio-2009
Mensajes: 91
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Controlar un solo inició de session en una aplicacion web

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!
  #9 (permalink)  
Antiguo 09/07/2009, 12:01
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Controlar un solo inició de session en una aplicacion web

¿Y como se supone que detectas que el mismo usuario accede dos veces (desde distintas maquinas, desde la misma maquina con dos navegadores diferentes o desde el mismo navegador con dos ventanas diferentes configurado para sesion-por-ventana)?

En cada uno de los casos, el navegador obtiene una session (cookie) diferente, así que en principio podría acceder varias veces sin problemas.

Sin desmerecer tampoco .
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #10 (permalink)  
Antiguo 09/07/2009, 12:39
Avatar de ezefarina  
Fecha de Ingreso: junio-2009
Mensajes: 91
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Controlar un solo inició de session en una aplicacion web

Es cierto GreenEyed, es por eso que dije "Desconozco la seguridad que debes implementar en tu sistema, pero esta es una buena opción". En los casos que me surgieron a mi personalmente, sirvió. Pero claro, yo especificamente no deseaba que se permitiera desde distintas maquinas, desde la misma maquina con dos navegadores diferentes o desde el mismo navegador con dos ventanas diferentes configurado para sesion-por-ventana. Es la única razón por la cual uso ese cookie. La solucion para cahosoft tal vez dependa de que restricciones de estas, quiere adoptar, o si no quiere adoptar ninguna de ellas.

GreenEyed, por favor pasate por este post, a ver que opinas
http://www.forosdelweb.com/f45/probl...2/#post2997937
  #11 (permalink)  
Antiguo 09/07/2009, 13:01
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Controlar un solo inició de session en una aplicacion web

Cita:
Iniciado por ezefarina Ver Mensaje
Es cierto GreenEyed, es por eso que dije "Desconozco la seguridad que debes implementar en tu sistema, pero esta es una buena opción". En los casos que me surgieron a mi personalmente, sirvió. Pero claro, yo especificamente no deseaba que se permitiera desde distintas maquinas, desde la misma maquina con dos navegadores diferentes o desde el mismo navegador con dos ventanas diferentes configurado para sesion-por-ventana. Es la única razón por la cual uso ese cookie. La solucion para cahosoft tal vez dependa de que restricciones de estas, quiere adoptar, o si no quiere adoptar ninguna de ellas.
http://www.forosdelweb.com/f45/probl...2/#post2997937
Lo dice en su mensaje original:
Cita:
como se seria la forma de controlar el acceso o inicio de session a aplicacion web..donde el usuario solo pueda iniciar una sola session...
Usando sólo las sesiones, con o sin cookies añadidas, no se puede controlar. De ahí lo de usar el contexto. En caso de haber muuuuchos usuarios que tengan sesion abierta simultaneamente, se podría considerar guardarlo en BDD, pero vamos, tendrían que ser muchos, muchos.

S!
__________________
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 05:04.