У меня есть фильтр, который распространяется AbstractAuthenticationProcessingFilter
.Фильтр дважды запускается в проекте Spring Boot
В классе конфигурации безопасности у меня ниже,
@Override
protected void configure(final HttpSecurity http) throws Exception {
http.addFilterBefore(getMyFilter(), BasicAuthenticationFilter.class);
http.addFilterAfter(getMyFilter2(), MyFilter.class);
http.csrf().disable().authorizeRequests().antMatchers(HttpMethod.OPTIONS, "/**").permitAll();
}
private MyFilter getMyFilter() {
return new MyFilter(properties, apiConsumer);
}
Когда я запустим REST конечной точки с почтальоном, то doFilter
метод MyFilter
получить хиты в два раза. В обоих случаях он имеет то же самое requestedSessionId
и strippedServletPath
в ServletRequest
.
Но MyFilter2
, которые распространяются GenericFilterBean
, только один раз вызвать.
Порядок выполнения фильтрующей MyFilter.doFilter
->MyFilter2.doFilter
->MyFilter.doFilter
Что бы быть причиной и как я могу найти причину?
я определил MyFilter с @Component аннотации. Когда я удаляю эту аннотацию, она попадает только один раз – Harshana