4.2. Spring Boot에서 암호화된 속성 위치 소유자 사용

Jasypt를 사용하면 속성 소스에 대한 암호화를 제공하고 애플리케이션은 암호화된 속성을 해독하고 원래 값을 검색할 수 있습니다. 다음 절차에서는 Spring Boot에서 속성 소스를 암호화하고 해독하는 방법을 설명합니다.

절차

  1. 프로젝트의 pom.xml 파일에 jasypt 종속성을 추가합니다.

    <dependency>
        <groupId>com.github.ulisesbocchio</groupId>
        <artifactId>jasypt-spring-boot-starter</artifactId>
        <version>3.0.3</version>
    </dependency>
  2. 프로젝트의 pom.xml에 Maven 리포지토리를 추가합니다.

    <repository>
    <id>jasypt-basic</id>
    <name>Jasypt Repository</name>
    <url>https://repo1.maven.org/maven2/</url>
    </repository>
  3. Jasypt Maven 플러그인을 프로젝트에 추가하고 암호화 및 암호 해독에 Maven 명령을 사용할 수 있습니다.

    <plugin>
       <groupId>com.github.ulisesbocchio</groupId>
       <artifactId>jasypt-maven-plugin</artifactId>
       <version>3.0.3</version>
     </plugin>
  4. pom.xml 에 plugin 리포지토리를 추가합니다.

    <pluginRepository>
       <id>jasypt-basic</id>
       <name>Jasypt Repository</name>
       <url>https://repo1.maven.org/maven2/</url>
    </pluginRepository>
  5. application.properties 파일에 나열된 사용자 이름과 암호를 암호화하려면 다음과 같이 DEC() 내에 이러한 값을 래핑합니다.

    spring.datasource.username=DEC(root)
    spring.datasource.password=DEC(Password@1)
  6. 다음 명령을 실행하여 사용자 이름과 암호를 암호화합니다.

    mvn jasypt:encrypt -Djasypt.encryptor.password=mypassword

    이는 application.properties 파일의 DEC() 자리 표시자를 암호화된 값으로 교체합니다. 예를 들면 다음과 같습니다.

    spring.datasource.username=ENC(3UtB1NhSZdVXN9xQBwkT0Gn+UxR832XP+tOOfFTlNL57FiMM7BWPRTeychVtLLhB)
    spring.datasource.password=ENC(4ErqElyCHjjFnqPOCZNAaTdRC7u7yJSy16UsHtVkwPIr+3zLyabNmQwwpFo7F7LU)
  7. Spring 애플리케이션 구성 파일에서 자격 증명을 해독하려면 다음 명령을 실행합니다.

    mvn jasypt:decrypt -Djasypt.encryptor.password=mypassword

    이렇게 하면 application.properties 파일의 내용이 암호화 이전과 같이 출력됩니다. 그러나 구성 파일은 업데이트하지 않습니다.