Вам не нужно регистрировать фильтр как компонент.Но для того, чтобы это работало, вы должны зарегистрировать свой пользовательский фильтр в конфигурации Spring Security, он должен иметь метод doFilter
, переопределенный для некоторого пользовательского поведения, в вашем случае вывод сообщения - конструктор предназначен только для инициализациикласс на языке программирования Java.
Вот как это делается с аннотациями, вместо этого вы должны зарегистрировать этот конфиг как bean-компонент в своем XML-файле.
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// constructor
@Override
protected void configure(HttpSecurity http) throws Exception {
// custom configuration of your http
//register the filter
http.addFilterAfter(new ResponseFilter(), ResponseFilter.class);
}
}
Кроме того, не надоне забудьте поместить свой фильтр в цепочку в переопределенном методе doFilter
, например:
@Override
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain filterChain) throws IOException, ServletException {
// other code is omitted for brevity
//move on to the next filter in the chains
filterChain.doFilter(req, res);
}
SecurityContextPersistenceFilter
уже является фильтром, поэтому вам не нужно реализовывать фильтр, и это не класс фильтра.что я бы предложил реализовать в большинстве случаев - лучше вместо этого расширять GenericFilterBean
в большинстве случаев.