Spring Boot 애플리케이션에서 application.properties를 암호화하기 위해 jasypt를 사용하고 있습니다. 내 목표는 jasypt가 테스트 암호화기 암호와 함께 사용되도록 통합 테스트를 업데이트하는 것입니다. 내 문제는 내 테스트가 테스트 속성을 무시하지 않는다는 것입니다.
의존성:
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
<scope>test</scope>
</dependency>
두 개의 application.properties가 있습니다. 하나는 src/main/resources/application.properties 이고 다른 하나는 src/test/application-test.properties입니다. 테스트 속성에서 jasypt.encryptor.password=test를 설정하고 테스트 비밀번호를 사용하여 jasypt ENC 값으로 spring.data.mongodb.uri를 재정의합니다. 내 테스트는 다음과 같습니다.
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ExtendWith(SpringExtension.class)
@SpringBootTest
@ActiveProfiles("test")
@TestPropertySource("classpath:application-test.properties")
public class SpringBootAppTest{
@Test
public void shouldLoadContext(){
//nothing to test
}
}
보시다시피 저는 Spring Boot 테스트에 JUnit5를 사용하고 있습니다. 사용자 지정 테스트 속성을 사용하여 이 테스트를 작성하는 여러 방법을 시도했지만 동일한 예외가 발생합니다.
Unable to decrypt: ENC(JsHRQaQN0cuHgrq/0o ...)
값은 application-test.properties의 값이 아닌 src/main/resources/application.properties의 spring.data.mongodb.uri 속성 값입니다. 내가 무엇을 잘못하고 있으며 테스트 속성으로 "주"속성을 어떻게 재정의 할 수 있습니까?