Como posso configurar o Tomcat para sempre direcionar para index.jsp após o login?
Pergunta
usuários redirecionamentos Apoio ao cliente Acesso de Atualmente Tomcat volta para onde eles foram inicialmente quando a aplicação descobri que eles não estavam logado.
Para esta aplicação em particular eu preciso forçá-los a sempre voltar para index.jsp
.
Eu tenho certeza que esta é uma opção de configuração simples na web.xml
da guerra, mas eu não encontrei a resposta no google.
Solução
A melhor solução seria provavelmente usar um filtro de servlet. Você poderia, então, verificar se há j_username / j_password e um login bem-sucedido e redirecioná-los para onde você queria ir.
Outras dicas
É algo que você não pode configurar no web.xml, pois não é parte do padrão. Para Tomcat (testado na versão 6.0.14) pode forçar os usuários de volta para index.jsp, adicionando o seguinte código no topo da sua login.jsp. Ele redireciona todos os pedidos que não tem um parâmetro com o nome de 'login' no url para a página de /index.jsp?login. Porque o redirecionamento tem o 'login' parâmetro o usuário será apresentada a página de login.
Não é uma solução segura. Se alguém pede para uma página e adiciona o parâmetro login, ele será redirecionado. Assim:
/ showPerson? Id = 1234 irá redirecionar para /index.jsp?login
/ showPerson? Id = 1234? Login irá NÃO redirecionamento para /index.jsp?login
O código que vai em cima do seu login.jsp:
<%
if (request.getParameter("login") == null) {
response.sendRedirect(request.getContextPath() + "/index.jsp?login");
return;
}
%>
Em vez de usar o 'login' parâmetro você provavelmente poderia usar um cookie. Você pode torná-lo mais seguro através da criação de um valor aleatório para o parâmetro login (login = randomvalue) e armazenar o valor no objeto de sessão para comparação.