4.2. Spring Boot에서 암호화된 속성 위치 소유자 사용
Jasypt를 사용하면 속성 소스에 대한 암호화를 제공하고 애플리케이션은 암호화된 속성을 해독하고 원래 값을 검색할 수 있습니다. 다음 절차에서는 Spring Boot에서 속성 소스를 암호화하고 해독하는 방법을 설명합니다.
절차
프로젝트의
pom.xml
파일에jasypt
종속성을 추가합니다.<dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-spring-boot-starter</artifactId> <version>3.0.3</version> </dependency>
프로젝트의 pom.xml에 Maven 리포지토리를 추가합니다.
<repository> <id>jasypt-basic</id> <name>Jasypt Repository</name> <url>https://repo1.maven.org/maven2/</url> </repository>
Jasypt Maven 플러그인을 프로젝트에 추가하고 암호화 및 암호 해독에 Maven 명령을 사용할 수 있습니다.
<plugin> <groupId>com.github.ulisesbocchio</groupId> <artifactId>jasypt-maven-plugin</artifactId> <version>3.0.3</version> </plugin>
pom.xml
에 plugin 리포지토리를 추가합니다.<pluginRepository> <id>jasypt-basic</id> <name>Jasypt Repository</name> <url>https://repo1.maven.org/maven2/</url> </pluginRepository>
application.properties
파일에 나열된 사용자 이름과 암호를 암호화하려면 다음과 같이DEC()
내에 이러한 값을 래핑합니다.spring.datasource.username=DEC(root) spring.datasource.password=DEC(Password@1)
다음 명령을 실행하여 사용자 이름과 암호를 암호화합니다.
mvn jasypt:encrypt -Djasypt.encryptor.password=mypassword
이는
application.properties
파일의 DEC() 자리 표시자를 암호화된 값으로 교체합니다. 예를 들면 다음과 같습니다.spring.datasource.username=ENC(3UtB1NhSZdVXN9xQBwkT0Gn+UxR832XP+tOOfFTlNL57FiMM7BWPRTeychVtLLhB) spring.datasource.password=ENC(4ErqElyCHjjFnqPOCZNAaTdRC7u7yJSy16UsHtVkwPIr+3zLyabNmQwwpFo7F7LU)
Spring 애플리케이션 구성 파일에서 자격 증명을 해독하려면 다음 명령을 실행합니다.
mvn jasypt:decrypt -Djasypt.encryptor.password=mypassword
이렇게 하면
application.properties
파일의 내용이 암호화 이전과 같이 출력됩니다. 그러나 구성 파일은 업데이트하지 않습니다.