ホームページ >Java >&#&チュートリアル >Spring Security フィルターが 2 回呼び出されるのはなぜですか?
Spring Bean フィルター登録での二重フィルター呼び出し
Spring Security を使用する場合、フィルターを Bean として登録すると、意図しない二重呼び出しが発生する可能性があります。 。これは、Spring の自動配線メカニズムがフィルターを 2 回登録するときに発生します。1 回目は従来の Bean 検出プロセスによるもので、もう 1 回目は Spring の GenericFilterBean のフィルターのサブクラス化によるものです。
問題の原因:
原因は、Spring Boot によるフィルターの Bean としての自動登録です。これはフィルター構成を簡素化することを目的としていますが、フィルターが明示的に定義され Spring Security に登録されている場合に冗長性が生じる可能性があります。
修正:
この問題を解決するには、以下を行う必要があります。フィルターを Bean として登録しないように Spring Boot に明示的に通知します。これは、Spring のドキュメントに従って FilterRegistrationBean を使用して実現できます。
@Bean public FilterRegistrationBean<MyFilter> registration(MyFilter filter) { FilterRegistrationBean<MyFilter> registration = new FilterRegistrationBean<>(filter); registration.setEnabled(false); return registration; }
setEnabled(false) によって登録を無効にすることで、Spring Boot によるフィルターの自動登録を効果的に防止できます。ただし、configure メソッドに登録されているため、フィルターは Spring Security によって引き続き認識され、適用されます。
以上がSpring Security フィルターが 2 回呼び出されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。