Spring Boot 2.1 - Spring Security 자동 구성 없이 @WebMvcTest
Spring Boot 2.1로 마이그레이션하기 전에 서비스에서 몇 가지 컨트롤러 테스트를 수행했습니다.@WebMvcTest
와 결합하여@AutoConfigureMockMvc
:
@WebMvcTest(SomeController.class)
@AutoConfigureMockMvc(secure = false)
public class SomeControllerTests { ... }
이로 인해 스프링 보안 구성이 비활성화되어 OAuth/J를 조롱하지 않고 MVC 테스트를 실행할 수 있습니다.WT.
Spring Boot 2.1에서는secured
속성은 더 이상 사용되지 않으며 릴리스 노트에는 다음이 언급되어 있습니다.
[...] @WebMvcTest는 WebSecurityConfigurer bean [...]을(를) 찾습니다.
사용되지 않는 제품을 방지하기 위해secured
우리의 속성과 로딩.WebSecurityConfigurer
우리는 다음과 같이 테스트를 다시 작성했습니다.
@WebMvcTest(
value = SomeController.class,
excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = WebSecurityConfigurer.class),
excludeAutoConfiguration = MockMvcSecurityAutoConfiguration.class)
public class SomeControllerTests { ... }
문제는 Spring Boot 2.1에서 이러한 테스트를 정의할 수 있는 보다 컴팩트한 방법이 있느냐는 것입니다.
네, 국기가 사용되지 않는다는 사실을 고려하기보다는 앞으로 그 방향으로 가고 있다는 사실을 받아들여야 합니다.
Spring Boot 2.1부터는 Spring Security를 사용하는 경우 사용자 지정 구성을 사용하여 테스트가 보호됩니다.그것의 실제 문제는 무엇입니까?
특정 테스트에 대해 인증하지 않으려면 Spring Security의 테스트 인프라를 사용하고 다음을 추가하십시오.@WithMockUser
.
동일한 시나리오를 접했으며 도움이 된 것은 다음 주석을 대신 사용하는 것이었습니다.@WebMvcTest
이 경우에는,@WithMockUser
도움이 되지 않았습니다.
@WebAppConfiguration
@Import({MockMvcAutoConfiguration.class})
@EnableConfigurationProperties({ResourceProperties.class, WebMvcProperties.class})
에 존재했던 클래스controllers
/value
의@WebMvcTest
에 들어갑니다.value
의@Import
주석
출처: https://github.com/spring-projects/spring-boot/issues/14227#issuecomment-688824627
언급URL : https://stackoverflow.com/questions/53389774/spring-boot-2-1-webmvctest-without-spring-security-auto-configuration
'programing' 카테고리의 다른 글
코드와 비교하여 전체 파일 git 비난을 표시하는 방법 (0) | 2023.07.02 |
---|---|
rgdal 패키지 설치 (0) | 2023.07.02 |
GraphQL 스키마에서 맵 개체를 정의하는 가장 좋은 방법은 무엇입니까? (0) | 2023.07.02 |
Oracle SQL 쿼리에서 선행 0을 추가하는 방법은 무엇입니까? (0) | 2023.07.02 |
mongodb 문서의 ID 유형으로 String을 사용할 수 있습니까? (0) | 2023.07.02 |