Spring MVC 2.5 - запомни меня с пользовательским фильтром предварительной аутентификации - PullRequest
1 голос
/ 15 октября 2011

Я работаю над устаревшим приложением, которое использует Spring Security 2.0.4.Я создал пользовательские AbstractPreAuthenticatedProcessingFilter и PreAuthenticatedAuthenticationProvider.Они создают и аутентифицируют пользователя на основе адреса электронной почты, отправляемого в качестве параметра в запросе, который поступает с сервера входа клиента.(Не очень безопасно, я знаю, но это требования)

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

У меня нет доступа к объекту HttpServletRepsonse в AbstractPreAuthenticatedProcessingFilter или PreAuthenticatedAuthenticationProvider, поэтому я не могу просто установить cookie в ответе.Я могу внедрить RememberMeServices в класс AbstractPreAuthenticatedProcessingFilter, но я не уверен, что это правильный путь.

Кто-нибудь может указать мне правильное направление?Нужно ли создавать пользовательские функции запомнить меня?Все, что я хочу сделать, это установить cookie (если он еще не существует), как только пользователь аутентифицирован.Затем для будущих запросов я могу проверить cookie в AbstractPreAuthenticatedProcessingFilter и вернуть аутентифицированный принципал.

1 Ответ

1 голос
/ 18 октября 2011

Исправлено без создания каких-либо новых фильтров или работы с «запомнить» (что на самом деле не имеет ничего общего с предварительной аутентификацией)

Я просто переопределил: AbstractPreAuthenticatedProcessingFilter # successAuthenticationсрабатывает только при успешной аутентификации.

...