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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-13 11:56:10415ブラウズ

Why is My Spring Security Filter Invoking Twice When Using @Autowired?

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

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