Запомните исходную страницу для перенаправления с весенней безопасностью после неудачного входа на незащищенный URL - PullRequest
1 голос
/ 20 января 2010

Я использую Spring-security и распорки 2. Большинство наших страниц имеют незащищенный контент, смешанный с некоторым защищенным контентом (пользовательские элементы управления), поэтому он не , как в примерах, в которых вы переходите к определенная страница и весенняя безопасность перехватывает все. Скорее я хотел бы иметь возможность работать с формой входа, доступ к которой осуществляется нажатием кнопки входа на любой странице. После успешной аутентификации вы будете перенаправлены на исходную страницу.

Вот где я в тупике. Отправка URL-адреса для перенаправления может быть выполнена путем добавления его в действие формы следующим образом:

<form action="/j_spring_security_check?spring-security-redirect=${url}" method="POST">
     <...>
 </form>

Проблема в том, что после сбоя этого входа в систему Spring-Security перенаправляет на ту же страницу (она настроена на это в контексте приложения), и у меня нет возможности получить URL-адрес, который я передал spring-security-redirect. Если бы это был доступ к одному из моих собственных классов, я обычно просто передавал бы его как скрытый параметр в форме или параметр запроса моего контроллера входа в систему. Но так как весенняя безопасность - та, которая делает перенаправление, я немного растерялся.

Пока единственное решение, которое я придумала, - попытаться сохранить этот URL в сеансе, но также нет хорошего способа удалить его после успешного входа в систему. Есть идеи?

1 Ответ

0 голосов
/ 20 января 2010

Если вы используете Spring Security 3.0, вы можете настроить AuthenticationFailureHandler. Например, его реализация по умолчанию может быть настроена для использования перенаправления вместо перенаправления.

...