Spring MVC 2.5 - запомни меня с пользовательским фильтром предварительной аутентификации
Я работаю над устаревшим приложением, которое использует Spring Security 2.0.4. Я создал пользовательские AbstractPreAuthenticatedProcessingFilter и PreAuthenticatedAuthenticationProvider. Они создают и аутентифицируют пользователя на основе адреса электронной почты, отправляемого в качестве параметра в запросе, который поступает с сервера входа клиента. (Не очень безопасно, я знаю, но это требования)
Все это работает нормально, но моя проблема в том, что мне нужно создать собственный файл cookie после проверки подлинности пользователя, чтобы он мог получить доступ к приложению вне текущего сеанса без необходимости перенаправления сервером входа.
У меня нет доступа к объекту HttpServletRepsonse в AbstractPreAuthenticatedProcessingFilter или PreAuthenticatedAuthenticationProvider, поэтому я не могу просто установить cookie в ответе. Я могу внедрить RememberMeServices в класс AbstractPreAuthenticatedProcessingFilter, но я не уверен, что это правильный путь.
Кто-нибудь может указать мне правильное направление? Нужно ли создавать пользовательские функции запомнить меня? Все, что я хочу сделать, это установить cookie (если он еще не существует), как только пользователь аутентифицирован. Затем для будущих запросов я могу проверить cookie в AbstractPreAuthenticatedProcessingFilter и вернуть аутентифицированный принципал.
1 ответ
Исправлено без создания каких-либо новых фильтров или работы с помните меня (что на самом деле не имеет ничего общего с предварительной аутентификацией)
Я просто переопределил: AbstractPreAuthenticatedProcessingFilter#successAuthentication Это дает мне доступ к HttpServletRepsonse и срабатывает только при успешной аутентификации.