Мое приложение - приложение Java EE 6, работающее на Glassfish 3.0.1.Безопасность JavaEE, страницы с ограниченным доступом: пользователь с отключенным доступом перенаправлен правильно. Записанный пользователем не
Я использую Java EE Security с областью JDBC. Поэтому я добавил ограничения на некоторые из моих веб-страниц. Я добавил следующий логин-конфигурации и безопасности, ограничение на мой web.xml:
<!-- Redirect access of restricted pages to index.jsp -->
<login-config>
<auth-method>FORM</auth-method>
<realm-name>jdbc</realm-name>
<form-login-config>
<form-login-page>/index.jsp?login=login</form-login-page>
<form-error-page>/index.jsp?login=error</form-error-page>
</form-login-config>
</login-config>
<!-- Restrict access for deanery related resources -->
<security-constraint>
<display-name>Deanery Constraint</display-name>
<web-resource-collection>
<web-resource-name>Deanery Content</web-resource-name>
<description />
<url-pattern>/deanery/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<description />
<role-name>DEANERY</role-name>
</auth-constraint>
</security-constraint>
Это прекрасно работает, если пользователь выходит из системы. Если он пытается получить доступ к странице в/deanery /, он перенаправляется на index.jsp (который перенаправляется на jsf).
Когда пользователь входит в систему, получая правильную роль, он может успешно получить доступ к ограниченным ресурсам. Так что все хорошо, пока здесь.
Теперь проблема: когда пользователь с меньшими правами (в моем примере студент) входит в приложение и пытается получить доступ к странице с ограниченными правами, он НЕ перенаправляется на страницу с ошибкой, настроенную в моем web.xml , Вместо этого он показал некрасивый Glassfish 403 страницы:
HTTP Status 403 - Доступ к запрошенному ресурсу было отказано
К сожалению, кажется, нет опции, чтобы поймать исключение в моем CustomExceptionHandler. Он даже не отображается на моем сервере.log (хотя я переключился на самый лучший уровень).
Что я могу сделать, чтобы пользователь перенаправлялся на мою страницу с ошибкой, вместо отображения страницы 403? Почему пользователь не перенаправляется на index.jsp, так как он, когда он выходил из системы ???
EDIT:
Просто попытался добавить ошибки-страницу с соответствующим кодом на мой web.xml.
<error-page>
<error-code>403</error-code>
<location>/index.jsp?login=login</location>
</error-page>
Отсутствие эффекта, все же страница ошибки Glassfish вместо моей.
Я уже скрываю ссылки на ограниченные ресурсы. Но если кто-то вводит адрес в браузер, я хочу, чтобы на нем было отображено правильное сообщение. – ifischer
Зачем платить негатив? Золтан заявил, что он новичок, и он предложил свое решение, может быть, это не рекомендованное решение, но он попытался, верно? – arg20