Я использую Spring-security и распорки 2. Большинство наших страниц имеют незащищенный контент, смешанный с некоторым защищенным контентом (пользовательские элементы управления), поэтому он не , как в примерах, в которых вы переходите к определенная страница и весенняя безопасность перехватывает все. Скорее я хотел бы иметь возможность работать с формой входа, доступ к которой осуществляется нажатием кнопки входа на любой странице. После успешной аутентификации вы будете перенаправлены на исходную страницу.
Вот где я в тупике. Отправка URL-адреса для перенаправления может быть выполнена путем добавления его в действие формы следующим образом:
<form action="/j_spring_security_check?spring-security-redirect=${url}" method="POST">
<...>
</form>
Проблема в том, что после сбоя этого входа в систему Spring-Security перенаправляет на ту же страницу (она настроена на это в контексте приложения), и у меня нет возможности получить URL-адрес, который я передал spring-security-redirect
. Если бы это был доступ к одному из моих собственных классов, я обычно просто передавал бы его как скрытый параметр в форме или параметр запроса моего контроллера входа в систему. Но так как весенняя безопасность - та, которая делает перенаправление, я немного растерялся.
Пока единственное решение, которое я придумала, - попытаться сохранить этот URL в сеансе, но также нет хорошего способа удалить его после успешного входа в систему. Есть идеи?