Проверка подлинности на основе Tomcat FORM на каждой странице - PullRequest
0 голосов
/ 28 мая 2011

Я хотел бы использовать форму аутентификации на каждой странице (в заголовке страницы), чтобы пользователь мог проходить аутентификацию с любой страницы.Я использую аутентификацию Tomcat на основе FORM, но когда я захожу на свою страницу индекса и пытаюсь войти, используя форму в заголовке, я получаю:

HTTP 400 - Invalid Direct Reference To Login Page

Есть ли какой-нибудь способ, который я мог бы использоватьнастройки в web.xml возможно, для решения этой проблемы?

Редактировать: Вот форма для входа в заголовок:

<form method="post" action="j_security_check">
     <input type="text" name="j_username" class="login"/>
     <input type="password" name="j_password" class="login"/>
     <input type="submit" value="Login"/>
</form>

Ответы [ 2 ]

0 голосов
/ 28 мая 2011

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

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

Tomcat не поможет вам реализовать это. Когда вы используете действие j_security_check, оно не сможет ничего сделать, потому что оно никогда не перехватывало запрос.

Вместо этого, возможно, проще проверить имя пользователя и пароль, если форма входа в систему отправлена. Если они в порядке, просто введите имя пользователя в свои данные сеанса. Аутентифицированный сеанс может быть легко распознан, поскольку он содержит имя пользователя в данных сеанса.

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

0 голосов
/ 28 мая 2011

Вы указали свой экран входа в систему как "добро пожаловать"? В случае успешного входа в систему он снова попытается пройти через страницу входа. Что такое тег страницы приветствия в вашем web.xml?

...