source

SecurityMockMvc 구성자를 찾을 수 없습니다.

manycodes 2023. 6. 20. 21:43
반응형

SecurityMockMvc 구성자를 찾을 수 없습니다.

여기 http://docs.spring.io/spring-security/site/docs/4.0.x/reference/htmlsingle/ #test-test-timemvc-test에 설명된 바와 같이 스프링 보안 테스트를 작성하려고 합니다.가져올 필요가 있습니다.SecurityMockMvcConfigurersIDE에서 클래스를 찾을 수 없습니다.

내 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는 Spring Security 4.0.4를 가져옵니다.풀어주다.이 릴리스에서 클래스를 찾을 수 없습니다.어떤 종속성이 추가로 필요합니까?아니면 제가 고려하지 않은 것이 또 있나요?

누락된 종속성:

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

에 필요한 종속성org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers수업은org.springframework.security:spring-security-test의존.

질문에는 Spring Boot 태그가 지정되어 있으며 Spring Boot은 에서 관리되는 종속성으로 종속성을 제공합니다.spring-boot-starter-parent뽕나무
당신의 pom은 매우 아마도 상속을 받습니다.spring-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-test의존성은 그것을 당기지 않습니다.spring-security-test의존.

Spring Boot를 사용하지 않는 경우에는 다음을 지정해야 합니다.spring-security-test버전이 응용 프로그램에서 사용하는 Core Spring 버전과 일치합니다.

SecurityMockMvcConfigurers 클래스는 에 포함되어 있습니다.

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

다른 릴리스에서는 SecurityMockMvcConfigurers가 존재하지 않을 수 있습니다.

하지만 MockMvcConfigurer 클래스가 있는데, 대신 이것으로 작업할 수 있습니까?

에 대해: 그러나 이 종속성에 해당 클래스가 포함되어 있지 않습니다.

네, 그 수업이 병에 포함되지 않았다는 당신의 말이 맞습니다.그래서 저는 당신이 거기에 있는 것을 사용해야 한다고 생각합니다.어쨌든 클래스는 다소 단순하고 소스 코드는 여기에 있습니다: SecurityMockMvcConfigurers

자신의 클래스에 있는 코드를 복사하기만 하면 끝입니다.

언급URL : https://stackoverflow.com/questions/36824973/cant-find-securitymockmvcconfigurers

반응형