Olá, minha dúvida é a seguinte: Após terminar a aula de login/logout vi que após fazer um logout, ele meio que volta para a tela de login novamente, certo? Então, só que ao meu ver isso não é tão adequado, deveria voltar para a outra página. então fui em busca do logout personalizado e como faze-lo e até consegui, mas tem algumas questões. Procurando muito eu achei que deveria ser implementado um contrato para realizar essa função e fiz. Descobri como fazer o redirect através do método sendRedirect e aí que vi deveria colocar a URL e resolvi colocar ela completa e funcionou como esperado, nesse caso ele ta redirecionando corretamente para produtos. Mas por exemplo, tem que colocar ela completa desse jeito ou tem um jeito melhor? Digo isso porque eu tentei fazer com redirect:/produtos e não funcionou igual a colocar a URL completa, ele funcionou diferente. Simplesmente o que ele ta fazendo é o logout e após isso ele meio que volta para a página anterior ao logout e isso é algo que eu realmente gostaria de aprender, e com isso eu consigo mas esse acho que não seria o melhor jeito de fazer, acredito que deva ser uma gambiarra. Então como eu poderia fazer isso? Cheguei a tentar dando um get na URL através daqueles objetos do método logout mas a URL não resulta na URL anterior que eu estava antes(Método esse que está listado ali embaixo) que resulta na URL de logout . Minhas dúvidas são mais essas duas mesmos: 1 - Eu preciso colocar a URL completa? Teria outro jeito de fazer ali? 2 - Como eu poderia após o logout retornar a URL que estava antes? (Porque eu acredito que é algo fixo, se existem duas páginas com botão sair, ao clicar nele provavelmente vai redirecionar a mesma página, mas como eu poderia após clicar no botão sair ele simplesmente manter a página anterior que já estava? Ou eu estou enganado nisso que estou afirmando?
Segue abaixo como está o código que implementa o contrato:
public class LogoutHandler implements org.springframework.security.web.authentication.logout.LogoutHandler {
@Override
public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
System.out.println("Consegui, agora é só redirecionar para a página desejada...");
try {
response.sendRedirect("http://localhost:8080/casadocodigo/produtos");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Método usado para tentativa de após logout redirecionar a página anterior que estava antes:
System.out.println(request.getRequestURL().toString());
A URL mostrada no console foi: http://localhost:8080/casadocodigo/logout que não é a que eu quero.