2016-04-24 15 views
7

http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/#test-mockmvc-setupに記載されているような春のセキュリティテストを作成しようとしています。私はSecurityMockMvcConfigurersを静的インポートとしてインポートする必要がありますが、私のIDEはクラスを見つけられません。SecurityMockMvcConfigurersが見つからない

次のように私のpom.xmlに見える:

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.0.M2</version> 
    <relativePath/> <!-- lookup parent from repository --> 
</parent> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <java.version>1.8</java.version> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-security</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

春ブーツ1.4.0.M2は春のセキュリティ4.0.4.RELEASEをインポートします。私はこのリリースでクラスを見つけることができません。どの追加の依存関係が必要ですか?それ以外に私が考えなかったことは?

答えて

24

不足している依存関係があった。

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-test</artifactId> 
    <version>4.0.4.RELEASE</version> 
</dependency> 
+9

copy-pastersの場合:スコープテストを追加することを忘れないでください。 – beat

+0

このコードをどこに追加するかを知ることができません。私はルート・コンテキストとサーブレット・コンテキストで試してみましたが、 'URL [file:src/main/webapp/WEB-INF/spring/appServlet/servlet-context.xml]のXML文書の31行目が正しくない; – Siddharth

+0

プロジェクトがmavenプロジェクトとして設定されていることが前提条件です。次に、このコードをpom.xmlファイルの依存関係セクションに追加します。 –

-2

クラスSecurityMockMvcConfigurersはSecurityMockMvcConfigurersが存在しなくてもよい他のリリースで

<dependency> 
<groupId>org.springframework.security</groupId> 
<artifactId>spring-security-test</artifactId> 
<version>4.2.1.RELEASE</version> 
</dependency> 

に含まれています。

しかし、MockMvcConfigurerクラスがありますが、代わりにこれを使用できますか?

について:この依存関係には、対応するクラスが含まれていません。

はい、あなたはそのクラスがジャーに含まれていないことは間違いありません。 だから私はそこにあるものを使う必要があると思う。 とにかく、クラスはかなり単純で、ソースコードはここにある: SecurityMockMvcConfigurers

はちょうどあなた自身のクラス内のコードをコピーして、あなたが行われています。

+0

あなたの答えはありがたいですが、この依存関係には対応するクラスが含まれていません。 –

0

org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurersクラスのために必要な依存関係がorg.springframework.security:spring-security-test依存関係です。

問題はタグ付けされています。SpringブートとSpringブートは、spring-boot-starter-parent pomの依存関係を依存関係として提供します。
あなたのpomはおそらくspring-boot-starter-parentから継承されます。
これ以上の理由がないバージョンは指定せず、単に親から継承したバージョンを使用します。十分です

<dependencies> 
    ... 
    <dependency> 
     <groupId>org.springframework.security</groupId> 
     <artifactId>spring-security-test</artifactId> 
     <scope>test</scope>   
    </dependency> 
    ... 
<dependencies> 

は春ブーツ2.0.0.M5と例えば、管理バージョンは

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-test</artifactId> 
    <version>5.0.0.M5</version> 
    </dependency> 

M5は単なる偶然ではないです。
これらは一緒に「より良く」動作するように設計されています。

org.springframework.boot:spring-boot-starter-test依存関係は、spring-security-test依存関係を引き出さないことに注意してください。

Spring Bootを使用しない場合は、アプリケーションで使用されるCore Springバージョンに準拠してspring-security-testのバージョンを指定するように努めてください。

関連する問題