Estou com um problema num JSP que acessa um objeto da session. Esse objeto é uma String que serve pra mostrar o nome do usuário na tela. O problema é descrito nos seguintes passos:
Usuário A faz login e em seguida acessa uma jsp que carrega o seu nome da sessão.
Usuário B faz login, na mesma rede, em outro browser, e acessa a mesma jsp que o usuário A acessou. O nome do usuário A aparece para ele.
Pelos testes que fiz isso acontece somente quando o cache do proxy está ativo. Ou então quando acessamos pelo apache. Na real não sei onde está a causa. Mas sei que acessando diretamente o tomcat o problema não acontece.
Gostaria de saber como evitar esse tipo de problema, sem ter que me preocupar com caches externos.
Aliás, este site está com o mesmo problema que citei. Meu colega de trabalho foi acessar este tópico e apareceu pra ele LOGOUT [alessandro.a.r], como se eu estivesse logado. Ele não conseguiu alterar os meus dados, mas mesmo assim é um problema, pois apareceu uma informação que não deveria aparecer.
Mero_Aprendiz
Uma duvida. Quando você vai colocar essa String na sessão do usuário logado, essa String vem de onde?
[]'s
JL
alessandro.a.r
Essa string vem do banco de dados. É carregada na session após a realização do login ou após a geração da senha. Apenas nestes casos.
Mero_Aprendiz
Quando você “debuga” o login do segundo usuário, o nome que vem do banco é o nome que deveria realmente ser exibido?
[]'s
JL
alessandro.a.r
Quando você “debuga” o login do segundo usuário, o nome que vem do banco é o nome que deveria realmente ser exibido?
[]'s
JL
Sim, pois quando o usuário faz o login o nome aparece corretamente. O problema surge quando ele acessa um outro link, que é uma jsp que busca uma string da session.
alessandro.a.r
A princípio resolvi o problema com o código abaixo:
response.setHeader(“Cache-Control”,“no-cache”); //HTTP 1.1 response.setHeader(“Pragma”,“no-cache”); //HTTP 1.0
response.setDateHeader (“Expires”, 0); //prevents caching at the proxy server