ホームページ >Java >&#&チュートリアル >Spring Security フィルターが 2 回呼び出されるのはなぜですか?

Spring Security フィルターが 2 回呼び出されるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-25 01:43:13427ブラウズ

Why Are My Spring Security Filters Invoked Twice?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。