質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Spring Security

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

1回答

9485閲覧

SpringSecurity設定 重大: フィルタ [springSecurityFilterChain] の起動中の例外です

kittykitty

総合スコア6

Spring Security

Spring Securityは、Springのサブプロジェクトの一つでWebアプリケーションに必要な機能を追加します。正規ユーザーであるかを確認するための「認証機能」と、ユーザーのアクセスを制御する「認可機能」を簡単に追加することが可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Spring

Spring Framework は、Javaプラットフォーム向けのオープンソースアプリケーションフレームワークです。 Java Platform上に、 Web ベースのアプリケーションを設計するための拡張機能が数多く用意されています。

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2019/08/01 04:54

編集2019/08/02 01:55

前提・実現したいこと

eclipseを使用しています。
SpringSecurityの設定を試みていますが、
eclipse上コンソールに下記エラーが出ます。
ご指導お願いします。

初心者の為、他コードなど不足点がありましたら
ご指示ください。
よろしくお願いします。

springsecurity
4.2.13.RELEASE
を使用しています。

発生している問題・エラーメッセージ

重大: フィルタ [springSecurityFilterChain] の起動中の例外です org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'springSecurityFilterChain' is defined

該当のソースコード

web.xml

<!-- 省略 --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml /WEB-INF/security.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/mvc-config.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>

security.xml

<?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> </beans:beans>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こちらのサイトをもとに回答いたします。↓
No Bean Named ‘springSecurityFilterChain’ is Defined

原因

Spring SecurityがspringSecurityFilterChainというbeanを探したが、
見つからなかったために起きています。

解決策

  • <http>要素を加える方法

springSecurityFilterChainが見つからなかった理由として、security.xmlに<http>要素がなかったことが考えられます。
そこで、security.xmlでsecurity名前空間を使用しているので、<http>要素を追加するとうまくいくかもしれません。

html

1<http auto-config='true'> 2 <intercept-url pattern="/**" access="ROLE_USER" /> 3</http>
  • セキュリティ定義をインポートする方法

springSecurityFilterChainが見つからなかった別の理由として、セキュリティ定義のXMLファイルがインポートされていなかったことが考えられます。
もしセキュリティ定義のXMLファイルがspringSecurityConfig.xmlという名前であれば、きちんとインポートされているか確認してみてください。
またはsecurity.xmlに次の1行を加えてみてください。

html

1<import resource="classpath:springSecurityConfig.xml" />

web.xmlはそのままで大丈夫です。


もしうまくいかなければ、エラーメッセージでググってより新しい情報を探す必要があるかと思います。

投稿2019/08/01 07:47

moootoko

総合スコア22

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kittykitty

2019/08/02 00:10

ご回答ありがとうございます。 セキュリティ定義のXMLファイルというのは、security.xmlとは別に作るのでしょうか?
moootoko

2019/08/02 00:25

説明が不足していて申し訳ございません。 セキュリティ定義のXMLファイルがインポートされていれば、ファイル名を確認する  or インポートされてなければ、import要素を加える という感じです。 security.xmlと別に自力でつくる必要はありません。
kittykitty

2019/08/02 01:11

ご丁寧にありがとうございます。 ご指導いただいたように security.xmlに <import resource="classpath:springSecurityConfig.xml" /> を追加した所、次は 重大: クラス [org.springframework.web.context.ContextLoaderListener] のリスナインスタンスにコンテキスト初期化イベントを送信中の例外です org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:springSecurityConfig.xml] Offending resource: ServletContext resource [/WEB-INF/security.xml]; というエラーが出てしまいました。。。 さらに <http>要素を加える方法 というのも追加してみるとeclipse上でも赤い×マークがつき エラーのなってしまいます。。 一度、ファイル名の確認をした方がいいのでしょうか、、?
kittykitty

2019/08/02 01:21

度々申し訳ございません。。 セキュリティ定義のXMLファイルというファイルが どのファイルを指すのかがわからないのですが 教えて頂けますでしょうか??
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問