@Autowire を使用した Spring Security でのフィルター呼び出しの重複
Spring Security で @Autowire を介してフィルターに依存関係を注入しようとしたとき、フィルターが 2 回呼び出される問題が発生する可能性があります。これは、Spring Boot がサーブレット コンテナーにフィルター Bean を自動的に登録するために発生します。
この二重呼び出しを防ぐには、次の 2 つのオプションがあります。
1。フィルターを Bean として登録しないようにします
これは、フィルターを Bean として公開せず、Spring Security にのみ登録することで実現できます。これにより、Spring Boot がフィルターをサーブレット コンテナーに自動的に登録しなくなります。
2. FilterRegistrationBean を使用します
フィルターへの依存関係の自動配線が不可欠な場合、フィルターは Bean である必要があります。ただし、フィルターをフィルターとして登録しないように Spring Boot に明示的に指示する必要があります。これは、以下に示すように FilterRegistrationBean を使用して実行できます。
@Bean public FilterRegistrationBean registration(MyFilter filter) { FilterRegistrationBean<MyFilter> registration = new FilterRegistrationBean<>(filter); registration.setEnabled(false); return registration; }
このアプローチにより、Spring Boot がフィルターをサーブレット コンテナーに登録するのを防ぎながら、Spring Security によるフィルターの自動接続を許可します。
以上が@Autowired を使用すると Spring Security フィルターが 2 回呼び出されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。