Como posso configurar o Tomcat para sempre direcionar para index.jsp após o login?

StackOverflow https://stackoverflow.com/questions/134263

  •  02-07-2019
  •  | 
  •  

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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top