Аутентификация формы Tomcat: вход со страницы индекса вместо страницы входа

Я использую аутентификацию на основе форм, поэтому пользователям необходимо войти в систему для просмотра определенных защищенных страниц. Это работает нормально, но я хотел бы иметь возможность войти в систему, прежде чем пытаться получить доступ к любым защищенным ресурсам. Когда я помещаю форму на свою страницу index.jsp, я получаю сообщение об ошибке «Неверная прямая ссылка на страницу входа в форму» при входе в систему. Мой вопрос: можно ли войти непосредственно со страницы индекса (или любой другой страницы, прежде чем быть перенаправлены на страницу входа)?


person user2948230    schedule 15.05.2014    source источник


Ответы (1)


Это возможно, если вы используете Tomcat версии 7 или выше.

В этой версии был добавлен атрибут landingPage к FormAuthenticator, который должен делать то, что вы хотите из описания:

Контролирует поведение процесса аутентификации FORM в случае неправильного использования процесса, например, посредством прямого запроса страницы входа или отсрочки входа в систему до истечения >сеанса. Если этот атрибут установлен, >Tomcat не возвращает код ответа об ошибке, а перенаправляет пользователя на указанную целевую страницу, если форма входа >отправлена ​​с действительными учетными данными.

см. документацию по Tomcat 7.

Чтобы добавить этот атрибут, вам нужно будет изменить свой <Context>, чтобы добавить, например:

<Valve className="org.apache.catalina.authenticator.FormAuthenticator" landingPage="exemple.jsp" />

с exemple.jsp под ограничением безопасности.

person Cédric Couralet    schedule 15.05.2014
comment
Люди, как правило, предпочитают страницы входа в систему, так что это здорово, хотя странно, что это было представлено только в Tomcat 7 ... - person Dennis; 06.07.2014