Autenticação Java Web | Falha de Segurança

Java

Servlets

HTTP

Web

16/06/2021

Contexto: Estou construindo um CRUD em Java Web para estudar e adquirir conhecimento.

Não estou usando nenhum Framework, somente JSTL para ter um código mais elegante nas JSPs.

Eu implementei recentemente a autenticação do sistema usando Filter e HttpSession. E implementei também o botão ‘sair’ que chama uma ação no meu sistema que invalida a sessão
session.invalidate(); 
e depois redireciona para a página de login.jsp.

Problema: Mesmo invalidando a sessão e barrando as requisições com Filtros, se eu clicar em ‘Voltar’ no navegador, eu acesso o meu sistema na última página que eu acessei antes de clicar em ‘sair’.

Eu não consigo fazer nada lá dentro do sistema após 'voltar'. Pois, qualquer ação é barrada pelo meu Filtro, que checka se o usuário está logado ou não. Porém, eu gostaria que ao tentar voltar a página, o navegador redirecionasse sempre para a página de login.

Estou usando o Tomcat, na versão 9.

O que já tentei: Já tentei usar forward e redirect. O problema permanece em ambos os casos. Atualmente meu bloco de código de Logout está assim:

req.getSession().invalidate();
resp.setHeader("Cache-Control","no-cache"); 
resp.setHeader("Cache-Control","no-store"); 
resp.setHeader("Pragma", "no-cache"); // HTTP 1.0.
resp.setHeader("Expires", "0"); // Proxies. 
resp.sendRedirect(typeAction[1]);

Alguém já passou por isso? Poderiam dar uma sugestão?
Cleverson Lira

Cleverson Lira

Curtidas 0
POSTAR