找不到 SecurityMockMvcConfigurers

2022-09-02 00:51:31

我正在尝试编写一个春季安全测试,如这里所述 http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/#test-mockmvc-setup。我需要作为静态导入导入,但我的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>

Spring Boot 1.4.0.M2 导入 Spring Security 4.0.4.RELEASE。我在此版本中找不到该类。我需要哪些其他依赖项?或者还有什么我没有考虑过的?


答案 1

缺少的依赖项是:

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

答案 2

类所需的依赖项是依赖项。org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurersorg.springframework.security:spring-security-test

这个问题被标记为Spring Boot,Spring Boot在pom中提供了依赖关系作为托管依赖关系。
你的 pom 很可能继承自 .
因此,最重要的是,如果没有很好的理由,请不要指定版本,而只使用从父级继承的版本。
这就够了:spring-boot-starter-parentspring-boot-starter-parent

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

例如,对于 Spring Boot 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-testspring-security-test

如果您不使用Spring Boot,则应努力指定符合应用程序使用的Core Spring版本的版本。spring-security-test


推荐