Problema de restriccion de acceso
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!
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!
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.
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.
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");
response.setHeader("Pragma", "No-cache");
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
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
