Filter wird zweimal aufgerufen, wenn Sie sich als Spring Bean registrieren.
Ich möchte benutzen@Autowire
mit einerFilter
. Also definiere ich meinen Filter imSecurityConfig
wie nachstehend
@Override
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.addFilterBefore(getA(), BasicAuthenticationFilter.class);
http.csrf().disable();
}
@Bean
public A getA(){
return new A();
}
Dieser FilterA
erweitert Spring'sGenericFilterBean
.
Ich erhalte weniger als die Ausgabe, wenn ich den Controller aufrufe, der die Filtertreffer zweimal anzeigt.
filter A before
filter A before
mycontroller invoke
filter A after
filter A after
Meine Beobachtung ist, dass dieser zusätzliche Aufruf mit dem Spring-Container aufgerufen wird, da, wenn der Filter nicht als Bean registriert wird, er nur einmal Treffer erhält. Was ist der Grund und wie kann ich das beheben?