Как проверить, не прошла ли аутентификация FORM Realm? - PullRequest
1 голос
/ 22 июня 2009

Я использую Аутентификацию FORM.

<login-config>
    <auth-method>FORM</auth-method>
    <form-login-config>
       <form-login-page>/loginPage.jsp</form-login-page>
       <form-error-page>/loginPage.jsp</form-error-page>
    </form-login-config>                
</login-config>  

Я бы хотел использовать один и тот же JSP для моей страницы формы входа и страницы ошибки формы, для повторного использования кода. Я использую область ( org.apache.catalina.realm.JDBCRealm ).

В моем JSP я хотел бы отображать сообщения об ошибках, если аутентификация не удалась. Сохраняет ли Realm что-либо в запросе, который я мог проверить?

Ответы [ 2 ]

1 голос
/ 26 апреля 2010

Добавить параметр в URL для страницы ошибки:

<form-login-config>
    <form-login-page>/login.jsp</form-login-page>
    <form-error-page>/login.jsp?error=true</form-error-page>
</form-login-config>

В вашем login.jsp проверьте, произошла ли ошибка, и отобразите сообщение об ошибке, если оно произошло:

<c:if test="${not empty error}">
    <p class="error">Login failed. Please try again.</p>
</c:if>

Эта форма не позволяет вам указать какую-либо конкретную причину, по которой не удалось войти в систему. Однако соображения безопасности уже делают это плохой практикой, так что это не должно быть проблемой. НАПРИМЕР. Вы не должны хотеть выводить подробные сообщения типа "Ни один пользователь не зарегистрирован под этим именем". или «Неверный пароль для пользователя X.», поскольку это поможет злоумышленнику проникнуть в систему.

Просто скажите им, что вход не выполнен. Легкая и хорошая практика безопасности, что еще вы хотите? :)

0 голосов
/ 22 июня 2009

Я сделал это, перенаправив страницу ошибки на страницу входа через заголовки http и добавив страницу ошибки с javascript, чтобы открыть имя входа в iframe под ошибкой.

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