danilochagov
@danilochagov

Можете ответить на вопросы по поводу web.xml в javaEE, там про аутентификацю?

Щас дошёл до темы в web.xml - аутентификация пользователей и есть пару вопросов:
1) Ест такой код:
<security-constraint>
        <web-resource-collection>
            <web-resource-name>SecureJSP</web-resource-name>
            <url-pattern>/jsp/vip.jsp</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>Danil</role-name>
        </auth-constraint>
    </security-constraint>
    
    <login-config>
        <auth-method>BASIC</auth-method>
    </login-config>
    
    <security-role>
        <role-name>Danil</role-name>
    </security-role>

Тут в security-role>role-name мы добавляем роли юзеров, а в auth-constraint->role-name добавляем тех, кто может быть допущен при вводе пароля и ника?

2)Когда делаешь form аутентификацию, то в файле jsp, где форма надо писать j_security_check, j_username, j_password и если где-то ошибиться, то ничего не сработает, почему так и какие есть другие названия(например будет не имя, а почта)?
Вот код:
<form action="j_security_check" method="post">
        <input type="text" name="j_username"><br/>
        <input type="password" name="j_password"><br/>
        <input type="submit" value="Login">
    </form>


3) Web.xml аутентификации они вообще стоят того, чтобы применять на практике, или потом в дальнейшем изучении javaEE будут более удобные способы? Просто данные получается берутся не из бд, а из файла томката(tomcat-users.xml), потом при неправильных данных(FORM) в web.xml, надо писать страницу на которую тебя перенаправит, а мб я хочу чтобы вывело текст и не было редиректа.
Вот код, которые редиректит:
<login-config>
        <auth-method>FORM</auth-method>
        <form-login-config>
            <form-login-page>/jsp/login.jsp</form-login-page>
            <form-error-page>/jsp/error.jsp</form-error-page>
        </form-login-config>
    </login-config>
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Тут в security-role>role-name мы добавляем роли юзеров, а в auth-constraint->role-name добавляем тех, кто может быть допущен при вводе пароля и ника?

Да.

в файле jsp, где форма надо писать j_security_check, j_username, j_password и если где-то ошибиться, то ничего не сработает

Логично, в программировании везде так.

почему так и какие есть другие названия(например будет не имя, а почта)

Потому, что сочетание из имени пользователя и пароля - самое распространённое. Хотите другие, придётся не использовать готовый form login, а писать свой.

они вообще стоят того, чтобы применять на практике,

В простых случаях применение вполне оправдано.

в дальнейшем изучении javaEE будут более удобные способы?

Огромное количество. От изучения JAAS ещё голова будет болеть.

а мб я хочу чтобы вывело текст и не было редиректа

Самое элементарное решение - это страницей ошибки указать ту же страницу логина, но с дополнительным параметром в URL, а в JSP странице проверять наличие этого параметра и выводить сообщение:
<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
        <form-login-page>/jsp/login.jsp</form-login-page>
        <form-error-page>/jsp/login.jsp?fail</form-error-page>
    </form-login-config>
</login-config>

<c:if test="${param.fail != null }" >
  <span class="error">Неправильное имя пользователя или пароль</span>
</c:if>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы