Boa Tarde Pessoal,
Estou desenvolvendo o login e o controle de acesso às páginas de um sistema , estou com um problema e gostaria do auxilio de vocês
para tentar esclarecer e resolver essa situação.
Basciamente fiz uma tela de login e uma home para onde o usuário é direcionado em caso de sucesso e onde existe um botao para sair do sistema, este
invoca um action em meu Bean para invalidar a sessão e chamar novamente a página de login.
Existe um filtro que faz um controle básico de acesso as páginas evitando que alguém acesse uma página sem estar com a sessão ativa.
Tudo isso descrito acima funciona perfeitamente. Porém, se logamos no sistema, clicamos no botão de sair e quando a página de login é carregada
clicamos no Voltar do browser ele exibe a home novamente, é claro que nenhuma ação poderá ser feita já que a sessão do usuário foi invalidada. Penso
que essa situação deve-se ao cache das páginas pelo Browser, por esse motivo, inclui o PhaseListener abaixo para evitar o cache das páginas:
public class LifeCycleListener implements PhaseListener {
public void beforePhase(PhaseEvent arg0) {
FacesContext facesContext = arg0.getFacesContext();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
response.addHeader("Pragma", "no-cache");
response.addHeader("Cache-Control", "no-cache");
response.addHeader("Cache-Control", "must-revalidate");
response.addHeader("Expires", "Mon, 8 Aug 2006 10:00:00 GMT");
}
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
public void afterPhase(PhaseEvent event) {
}
}
Este código valeu para acertar a situação do IE porém o Firefox continua com o comportamento descrito acima.
Estou certo em pensar no cache ou existe alguma outra situação que está influenciando nesse comportamento?
Caso seja cache, exite alguma configuração especial para tratar o Firefox?
Obrigado a todos,
Fabiano.