Spring Security RememberMe обработчик успеха или фильтрация URL

Я использую Spring Security со страницей входа и фильтром «запомнить меня». Фильтрация «запомни меня» может происходить на любой странице приложения.

Но мне нужно одинаковое поведение как при аутентификации пользователя со страницы входа, так и из файла cookie:

  • Я хочу установить некоторую информацию о пользователе в сеансе
  • Я хочу перенаправить пользователя на домашнюю страницу (always-use-default-target = "true")

Я видел, что обработчик успеха для тега «запомнить меня» поддерживается Spring Security начиная с версии 3.1.0 (https://jira.springsource.org/browse/SEC-1603).

Другим решением для меня было бы ограничить URL-адрес для фильтра «запомнить меня», например для URL-адреса перехвата. Я бы разрешил фильтрацию запоминания только для URL-адреса домашней страницы или по умолчанию.

Есть ли стандартный способ ограничить URL-адрес для фильтра «запомнить меня» или перенаправить пользователя после аутентификации файлов cookie до версии 3.1.0?


person Samuel    schedule 12.09.2011    source источник


Ответы (1)


Конечно - создайте подкласс RememberMeAuthenticationFilter и переопределите doFilter(). Если запрос предназначен для домашней страницы, вызовите super.doFilter(), в противном случае вызовите chain.doFilter().

person sourcedelica    schedule 12.09.2011
comment
спасибо, это означает, что мне нужно жестко запрограммировать или определить с помощью настраиваемых свойств URL-адреса, которые должны быть перехвачены фильтром. Это нормально, но мне было интересно, есть ли что-то вроде URL-адреса перехвата. - person Samuel; 12.09.2011
comment
В Spring 3.0 все фильтры применяются ко всем URL-адресам перехвата. В 3.1 у вас могут быть разные фильтры, применяемые к разным URL-адресам. - person sourcedelica; 12.09.2011