Путаница в аутентификации на основе формы в Java - PullRequest
2 голосов
/ 02 марта 2010

Может ли кто-нибудь сказать мне, как я могу обработать сервлет j_security_check в аутентификации на основе форм в java?

Нужно ли сопоставлять класс сервлета с j_security_check * 1006?* имя в файле web-xml, например:

<servlet>
<servlet-name>Anyname</servlet-name>
<servlet-class>Anyclass</servlet-name>
</servlet>

<servlet-mapping>
<servlet-name>Anyname</servlet-name>
<url-pattern>/j_security_check</url-pattern>
</servlet-mapping> 

Если я введу имя пользователя и пароль и нажму на кнопку отправить, то как сервлет с именем j_security_check будет обрабатывать эту информацию?Как этот сервлет будет проверять введенные имя пользователя и пароль и получать ресурс, если аутентификация, а затем авторизация пройдут успешно, иначе страница с ошибкой.Как j_security_check сервлет сделает это?

Ответы [ 2 ]

5 голосов
/ 02 марта 2010

Идея состоит в том, что вы пишете JSP или сервлет, который представляет форму со следующими полями и действием:

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

Когда форма отправлена, контейнер сервлета проверяет учетные данные для вас, используя механизмвы определили (например, JAAS).В вашем файле web.xml вы устанавливаете следующее:

<login-config>
    <form-login-check>
        <form-login-page>/login.jsp</form-login-page>
        <form-error-page>/error.jsp</form-error-page>
    </form-login-check>
</login-config>

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

1 голос
/ 02 марта 2010

Вам не нужно сопоставлять j_security_check ни с чем. Это управляется сервером приложений.
Однако вам НУЖНО добавить имена пользователей. роли и информация о сфере.
У каждого сервера приложений есть свой способ аутентификации этой информации.

Смотрите это -
1) http://www.student.nada.kth.se/~d95-cro/j2eetutorial14/doc/Security5.html#wp303355 и
2) http://docs.sun.com/app/docs/doc/819-3669/bncby?a=view

...