Проверка подлинности с помощью Tomcat - PullRequest
2 голосов
/ 21 января 2011

Я пытаюсь реализовать аутентификацию на основе форм с помощью Tomcat. Все мои защищенные сервлеты отображаются в mydomain / myapp. Я могу защитить этот каталог, следуя основным учебным пособиям и указав страницы входа и входа в систему.

Моя проблема в том, что мне нужен незащищенный mydomain / index.html, который содержит формы имени пользователя / пароля, чтобы посетитель мог оттуда войти в систему. Моя лучшая попытка пока не работает:

<form method="POST" action="myapp/">
  Username: <input type="text" name="j_username"> <br/> 
  Password: <input type="password" name="j_password">
  <input type="submit" value="Login">
</form>

Есть предложения?

Редактировать: Аутентификация работает в том смысле, что если вы попытаетесь получить доступ к mydomain / myapp, вы будете перенаправлены на страницу входа. Чего я не понимаю, так это как разрешить пользователю вход в систему без предварительной попытки доступа к защищенным страницам.

Ответы [ 3 ]

1 голос
/ 21 января 2011

Прочтите параграф 13.5.3.1 спецификации сервлета . Это говорит: «Для того, чтобы аутентификация прошла надлежащим образом, действие формы входа всегда должно быть j_security_check ".

Таким образом, вы должны изменить действие вашей формы входа. Это должно быть j_security_check.

0 голосов
/ 17 сентября 2015

в web.xml, где вы объявляете безопасность, вы должны объявить ее как для защищенного ресурса, так и для открытого ресурса.

просто при объявлении открытого ресурса вы не пишете 'aut-constaint'теги

например для защищенного ресурса:

 <security-constraint>
    <web-resource-collection>
        <web-resource-name>restricted</web-resource-name>
        <url-pattern>/*</url-pattern>           
    </web-resource-collection>

    <auth-constraint>
        <role-name>*</role-name>
    </auth-constraint>
</security-constraint>

и для открытого ресурса:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>open</web-resource-name>
        <url-pattern>/path/to/open/resource</url-pattern>           
    </web-resource-collection>
</security-constraint>
0 голосов
/ 16 мая 2012

Когда пользователь пытается получить доступ к вашему защищенному ресурсу (securedPage.jsp), они будут перенаправлены на вашу страницу входа (например, login.jsp).Они введут имя пользователя и пароль, затем нажмите «Отправить».Форма будет отправлена ​​с использованием действия j_security_check.Это то, что обеспечивает контейнер.Поэтому, если вход в систему выполнен успешно, пользователь будет перенаправлен на securedPage.jsp, в противном случае он будет перенаправлен на страницу ошибки, на которой у вас также есть

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...