Spring MVC 2.5 - запомните меня с помощью настраиваемого фильтра предварительной аутентификации

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

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

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

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


person headz68    schedule 14.10.2011    source источник


Ответы (1)


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

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

person headz68    schedule 17.10.2011