AYUDA CON SESIONES EN SERVLETS

ppchan
28 de Junio del 2006
Hola

Estoy haciendo un sistemita con servlets, y tengo que hacer algo con la seguridad, me han recomendado mucho trabajar con sesiones, he estado leyendo acerca de esto, puedo crear la sesion, puedo agregar datos a esa sesion, como es el nombre de usuario y/o el password, recogiendolos de los parametros, tambien tengo el tiempo maximo de inactividad, pero lo que no he podido hacer es:

Que cuando se pase del tiempo maximo de inactividad, y se kiere ver algun tipo de informacion, me regrese de nuevo a la pagina de login, ya no tengo idea de como puedo hacerle. Si alguien me puede echar la mano para poder resolver esto de ante mano muchas gracias

freddyucv
28 de Junio del 2006
hay una interface llamada HttpSessionListener, esta interface es usada para recibir notificacion de cuando una session se crea o se invalida tal vez te pueda servir

ppchan
28 de Junio del 2006
Hola freddyucv

Estaba buscando algun ejemplo en la red para tratar de resolver mi problema y me encontre con esto y a algunas cosas no le entiendo muy bien:

// Creaci�n de la sesi�n:
HttpSession session = request.getSession(true);

/* Tenemos el campo String USER_KEY que se encarga de almacenar en la sesi�n el nombre del usuario */
String sessionUser = null;
if (session != null) // Si la sesi�n ya exist�a
sessionUser = (String) session.getValue(USER_KEY);

/* Si la sesi�n existe, pero aun no se tiene usuario para la misma, obtenemos el password de la cabecera y la validamos con un m�todo llamado validarUsuario que tenemos que construir nosotros */
String _user = null;
if (sessionUser == null) _user = validarUsuario(request);

/* Si no hay usuario para la sesi�n y el usuario no ha sido autentificado, forzamos un login */
if ((sessionUser == null) && (_user == null)) {

/* El usuario no tiene autorizaci�n para acceder a la p�gina. Mostramos un di�logo para introducir login y password */

/* Aqu� vendr�a c�digo HTML para mostrar en pantalla */
}
else {

/* Hemos autentificado el nombre del usuario, pero aun no tenemos usuario para la sesi�n. Lo ponemos */
if ((sessionUser == null) && (session != null)) {
session.putValue(USER_KEY,_ user);
sessionUser = _user;
}
}

Tiene una peque�a explicacion de que es lo que se hace, pero en la parte de que llama a un metodo validarUsuario() dice que se tiene que hacer, ahi es donde se me acaban las ideas de como hacerle, pues al final del archivo el eclipse creo automaticamente este metodo:

/**
* @param request
* @return
*/
private String validarUsuario(HttpServletRequest request) {


// TODO Ap�ndice de m�todo generado autom�ticamente
return null;
}
ahi intente jalar el valor del campo usuario del formulario de autentificacion, pero pues no es mucha mi experiencia con esto y no tengo mas idea de como hacerle.

Si alguien le entiende, por favor digame una idea de como solucionarlo, igual parece sencillo, pero yo no tengo mucho conocimiento de esto, estoy aprendiendo, y kiero seguir haciendolo. Muchas gracias por tu ayuda freddyucv, voy a investigar bien hacerca de loq ue me comentaste gracias

Saludos

c0pyd0wn
28 de Junio del 2006
El tiempo de sesion tienes que ponerlo en el XML, dentro de WEB_INF

freddyucv
28 de Junio del 2006
para usarla debes crear una clase que implemente la interface y despues colocar en el web.xml

<listener>
<listener-class>AQUI VA EL NOMBRE DE LA CLASE</listener-class>

la etiqueta listener va dentro de la etiqueta web-app
<listener>