страница обязательной аутентификации Spring - PullRequest
0 голосов
/ 23 декабря 2011

Я использую Spring Security 3.0.7

У меня есть правило веб-безопасности в файле конфигурации, чтобы разрешить доступ к некоторым страницам только для аутентифицированных пользователей:

<intercept-url pattern="/faces/paginas/secured/**" access="isAuthenticated()"/>

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

Это поведение по умолчанию.

Но есть ли способ отобразить пользовательскую страницу вместо формы входа? (например, страница, на которой просто отображается сообщение «Доступ запрещен»)

Ответы [ 3 ]

0 голосов
/ 19 сентября 2012

Вы должны указать свою страницу с отказом в доступе через

<form-login login-page="/accessDenied.htm" />

Чтобы включить «обычный вход в систему», вам нужно подключить другую страницу, которая отправляет свою форму входа в систему / j_spring_security_check (если вы не измените значения по умолчанию).

0 голосов
/ 05 апреля 2013

Почему бы не добавить атрибут authentication-failure-url в тег form-login?

<form-login login-page="/login.htm"
                        default-target-url="/successview.htm"
                        always-use-default-target="true"
                        authentication-failure-url = "/accessdenied.htm?login_error=1" />
0 голосов
/ 23 декабря 2011

Как написано в Spring Security Documentation (раздел 9.2), вы можете указать accessDeniedHandler, который может обработать ошибку 403 (запрещено):

<bean id="accessDeniedHandler"
     class="org.springframework.security.web.access.AccessDeniedHandlerImpl">
  <property name="errorPage" value="/accessDenied.htm"/>
</bean>

Далее в пункте 9.2.2 вы можете прочитать:

По умолчанию используется AccessDeniedHandlerImpl, который просто отправляет ответ 403 (запрещенный) клиенту.В качестве альтернативы вы можете явно настроить экземпляр (как в приведенном выше примере) и задать URL-адрес страницы с ошибкой, на которую он будет перенаправлять запрос.Это может быть простая страница «отказано в доступе», такая как JSP, или это может быть более сложный обработчик, такой как контроллер MVC.И, конечно, вы можете реализовать интерфейс самостоятельно и использовать собственную реализацию.

...