Problema de restriccion de acceso

ivo_es
08 de Marzo del 2006
Tengo una parte del portal q estoy haciendo restringido a usuarios registrados, para ello cuando se inicia la sesion se añade (estoy hablando de JSP no servlets):
session.putValue("MM_Username",..nombre..)

y cuando cierra la sesion hago:
session.putValue("MM_Username","")

En las paginas que quiero restringir compruebo que esa variable es distinta de null y "" y esta comprobacion funciona bien casi siempre(redireccionando a la pagina publica de inicio si no hay variable definida).

El problema es que cuando se cierra una sesion abierta si pulso Atras o escribo la direccion de la pagina restringia de inicio en el navegador, la pagina se carga sin mas, eso si, si la recargo entonces reconoce la restriccion y me sale inmediatamente.

Creo que es pq coge la pagina de cache en vez de volver a pedirla del servidor, no hay manera de controlar esto?

Espero haberme explicado bien, Gracias!

Tommy
08 de Marzo del 2006
En efecto, yo tambien creo que es porque te esta cogiendo la pagina de la cache, y no pidiendola al servidor. La solucion es pues, no dejar que esa pagina sea cacheada en el navegador, y creo que podria servirte incluir el siguiente codigo en la HTTP Response de tu JSP :

response.setHeader("Pragma", "No-cache");
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-cache");

Hacerlo de esta manera es mas efectivo que el control de cacheo del navegador usando los tags <META> equivalentes (por ejemplo <META
HTTP-EQUIV="Pragma" CONTENT="No-cache"> es el equivalente de la primera sentencia)
Si lo que quieres es permitir que la instancia de tu jsp pueda ser cacheada en el navegador de un usuario, pero no permitir a un servidor Proxy que pueda servir esa pagina cacheada a otros usuarios, entonces has de usar el codigo :

response.setHeader("Cache-Control", "private");

Espero que te haya servido de ayuda.

tonisr
08 de Marzo del 2006
bueno se puede saber a lo q os referis con lo de la http response dnd y como se supone q tendria q poner este codigo:
response.setHeader("Pragma", "No-cache");

jorge
08 de Marzo del 2006
Tengo un problema con la caché en JSP con JRUN 3.1 ....

response.setHeader("Pragma", "No-cache");
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-cache");

pongo estas cabeceras en JSP,
y tambíen en <meta http-equiv...
pero cuando pulso botón Atrás del navegador, no consigo nada. Los datos que había introducido siguen apareciendo.

¿¿ Qué puedo hacer ??

Gracias