Как я могу настроить Tomcat, чтобы он всегда направлялся в index.jsp после входа в систему? - PullRequest
0 голосов
/ 25 сентября 2008

В настоящее время поддержка входа в систему Tomcat перенаправляет пользователей туда, где они были изначально, когда приложение выяснило, что они не вошли в систему.

Для этого конкретного приложения мне нужно заставить их всегда возвращаться к index.jsp.

Я почти уверен, что это простой вариант конфигурации в WAR web.xml, но я не нашел ответа в Google.

Ответы [ 2 ]

2 голосов
/ 01 октября 2008

Лучшим решением, вероятно, было бы использование фильтра сервлетов. Затем вы можете проверить наличие j_username / j_password и успешного входа в систему и перенаправить их туда, куда вы хотели, чтобы они пошли.

0 голосов
/ 26 сентября 2008

Это то, что вы не можете настроить в web.xml, поскольку оно не является частью стандарта. Для Tomcat (протестировано на версии 6.0.14) вы можете заставить пользователей вернуться к index.jsp, добавив следующий код поверх вашего login.jsp. Он перенаправляет каждый запрос, у которого нет параметра с именем login в URL, на страницу /index.jsp?login. Поскольку у перенаправления есть параметр 'login', пользователю будет представлена ​​страница входа в систему.

Это не безопасное решение. Если кто-то запрашивает страницу и добавляет параметр входа, он будет перенаправлен. Итак:

/ showPerson? Id = 1234 будет перенаправлять на /index.jsp?login

/ showPerson? Id = 1234? Логин НЕ будет перенаправлен на /index.jsp?login

Код, который идет поверх вашего login.jsp:

<%
if (request.getParameter("login") == null) {
    response.sendRedirect(request.getContextPath() + "/index.jsp?login");
    return;
}
%>

Вместо использования параметра 'login' вы, вероятно, можете использовать cookie. Вы можете сделать его более безопасным, создав случайное значение для параметра входа в систему (login = randomvalue) и сохранив значение в объекте сеанса для сравнения.

...