'springSecurityFilterChain'という名前のBeanが定義されていません



No Bean Namedspringsecurityfilterchainis Defined



1.問題

この記事では、SpringSecurityの構成の問題について説明します。アプリケーションの起動プロセスで次の例外がスローされます。

SEVERE: Exception starting filter springSecurityFilterChain org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined

2.理由

この異常の理由は非常に Simple-Spring Security springSecurityFilterChain(デフォルト)という名前のBeanを検索しましたが、見つかりませんでした。 web.xmlのメインのSpringSecurityフィルター(DelegatingFilterProxy) このBeanを定義します。



springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy springSecurityFilterChain /*

これは単なるプロキシであり、すべてのロジックがspringSecurityFilterChainBeanに委託されます

3.解決策

このコンテキストの欠如の最も一般的な理由は、セキュリティXMLBean構成が定義されていないことです。 彼:



@ImportResource({'classpath:springSecurityConfig.xml'})

XML構成名前空間Securityを使用する場合-上記の例に示すように、宣言により、フィルターBeanを作成するための単純な要素が保証され、すべてが正しく開始されます。

springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy targetBeanName customFilter

もう1つの考えられる原因は、セキュリティ構成がWebアプリケーションの全体的なコンテキストにインポートされないことです。

万一に備えて springSecurityConfig.xmlという名前のセキュリティXML構成ファイル、必ず大文字をインポートしてください ソース:



|_+_|

またはXMLを使用します。

|_+_|

最後に、web.xml Beanでフィルターのデフォルト名を変更できます。多くの場合、SpringSecurityで既存のフィルターを使用します。

4.まとめ

この 非常に具体的なSpringSecurityの問題(フィルターチェーンBeanの欠如)について説明し、一般的な問題の解決策を示しました