Подход, которому вы должны следовать, зависит только от того, что вы действительно хотите делать в своем пользовательском фильтре.
Я столкнулся с подобной проблемой, посмотрите на этот пост несколько предложений https://stackoverflow.com/a/12356510/686478.
security:form-login
внутренне создает определение компонента для AuthenticationProcessingFilter, и, следовательно, переопределение его в той же позиции (в вашем случае его FORM_LOGIN_FILTER или AUTHENTICATION_PROCESSING_FILTER, как он вызывался в 2.x ), может вызвать ошибку, поскольку bean-компонент уже определен обработчиком пространства имен http. См. Добавление собственного фильтра в разделе справочного руководства.
Простая опция - установить auto-config в false, удалить <form-login>
и определить свой фильтр авторизации в предопределенном положении, но при этом вы также потеряете удобство использования и удобочитаемость вашей конфигурации безопасности, и вам придется управлять зависимости вашего AuthenticationProcessingFilter самостоятельно (например, настройка AuthenticationManager, filterProcessesUrl и т. Д.).
Если вы действительно не хотите перезаписывать существующий фильтр аутентификации, а просто хотите выполнить некоторую предварительную / последующую обработку, другой альтернативой является определение пользовательского фильтра с использованием атрибутов after или before, который вызывается до или после фактического фильтра.
Примечание: Исходя из строки темы, я предполагаю, что вы намерены использовать AUTHENTICATION_PROCESSING_FILTER, а не FILTER_SECURITY_INTERCEPTOR, который является псевдонимом для FilterSecurityInterceptor.
Я знаю, что это своего рода устаревший пост, но я надеюсь, что это поможет некоторым :))