4장. Spring Boot에서 암호화된 속성 자리 표시자를 사용하는 방법


컨테이너를 보호하는 경우 구성 파일에서 일반 텍스트 암호를 사용하지 않는 것이 좋습니다. 일반 텍스트 암호를 사용하지 않는 한 가지 방법은 가능한 경우 암호화된 속성 자리 표시자를 사용하는 것입니다.

4.1. 값을 암호화하기 위한 마스터 암호 정보

Jasypt를 사용하여 값을 암호화하려면 마스터 암호가 필요합니다. 마스터 암호를 선택하는 것은 귀하 또는 관리자에게 달려 있습니다. Jasypt는 마스터 암호를 설정하는 몇 가지 방법을 제공합니다. Jasypt를 Spring 구성 프레임워크에 통합할 수 있으므로 구성 파일이 로드되면 속성 값이 암호 해독됩니다. 한 가지 방법은 Spring 부팅 구성에서 일반 텍스트로 마스터 암호를 지정하는 것입니다.

Spring은 PropertyPlaceholder 프레임워크를 사용하여 토큰을 속성 파일의 값으로 교체하고, Jasypt의 접근 방식은 PropertyPlaceholderConfigurer 클래스를 암호화된 문자열을 인식하고 암호 해독하는 클래스로 대체합니다.

예제

<bean id="propertyPlaceholderConfigurer"
      class="org.jasypt.spring.properties.EncryptablePropertyPlaceholderConfigurer">
  <constructor-arg ref="configurationEncryptor" />
  <property name="location" value="/WEB-INF/application.properties" />
</bean>

<bean id="configurationEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
  <property name="config" ref="environmentVariablesConfiguration" />
</bean>

<bean id="environmentVariablesConfiguration"
      class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
  <property name="algorithm" value="PBEWithMD5AndDES" />
  <property name="password" value="myPassword" />
</bean>

일반 텍스트로 마스터 암호를 지정하는 대신 환경 변수를 사용하여 마스터 암호를 설정할 수 있습니다. Spring Boot 구성 파일에서 이 환경 변수를 passwordEnvName 속성 값으로 지정합니다. 예를 들어 MASTER_PW 환경 변수를 마스터 암호로 설정하는 경우 Spring Boot 구성 파일에 이 항목이 있습니다.

<property name="passwordEnvName" value="MASTER_PW">
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.