Spring Boot 애플리케이션 구성에서 Spring Cloud {cipher}를 사용하는 방법이 있습니까?
Spring Cloud Config를 사용하는 Spring Boot 앱이 있지만 Spring Boot apps bootstrap.yml 파일에서 Spring Cloud Config 암호를 암호화하고 싶습니다.이것을 할 수 있는 방법이 있습니까?다음은 예입니다.
Spring Boot 앱 bootstrap.
spring:
cloud:
config:
uri: http://locahost:8888
username: user
password: '{cipher}encryptedpassword'
제가 발견한 몇 가지는 이것과 관련이 있습니다.
bootstrap.yml(또는 application.yml)을 사용하는 경우 암호 텍스트의 형식은 작은 따옴표로 묶어야 합니다.
security.user.password: '{cipher}56e611ce4a99ffd99908d2c9aa1461d831722812e4370a5b6900b7ea680ae914'
bootstrap.properties(또는 application.properties)를 사용하는 경우 암호 텍스트의 형식은 다음과 같이 포함할 수 없습니다.
security.user.password= {cipher}56e611ce4a99ffd99908d2c9aa1461d831722812e4370a5b6900b7ea680ae914
[reference docs][1]에는 인용문이 없는 yml이 표시되지만, 제가 작업한 적은 없습니다.SnakeYaml은 항상 다음과 같은 오류를 보고했습니다.
"expected <block end>, but found Scalar"
사용자 안내서에 설명된 대로 구성 클라이언트에서 암호화된 속성을 지원합니다.분명히 그런 방식으로 실행하면 런타임에 속성을 해독할 수 있는 키를 제공해야 하므로 실제로 항상 이점이 있는 것은 아닙니다(구성 파일이 특수 형식의 키 저장소와 비슷하므로 여러 개 대신 하나의 암호만 보호할 수 있습니다).예(application.yml):
integration:
stores:
test: '{cipher}316f8cdbb776c23e679bf209014788a6eab7522f48f97114328c2c9388e6b3c1'
키(bootstrap.yml):
encrypt:
key: ${ENCRYPT_KEY:} # deadbeef
Spring CLI를 사용하여 암호화할 수 있습니다.spring encrypt password --key 'SECRET_KEY'
https://cloud.spring.io/spring-cloud-cli/
언급URL : https://stackoverflow.com/questions/28421252/is-there-a-way-to-use-spring-cloud-cipher-in-spring-boot-application-config
'programing' 카테고리의 다른 글
사전 값을 여러 개 가져오는 방법? (0) | 2023.07.17 |
---|---|
NSA 특성 문자열을 사용하여 문자열 색상을 변경하시겠습니까? (0) | 2023.07.17 |
타임스탬프에서 T와 Z는 정확히 무엇을 의미합니까? (0) | 2023.07.17 |
[Vue warn]:렌더 오류: "TypeError: 정의되지 않은 'products' 속성을 읽을 수 없습니다." (0) | 2023.07.17 |
Pandas/Python에서 열을 필터링하기 위해 loc을 사용하는 것과 대괄호만 사용하는 것의 차이점은 무엇입니까? (0) | 2023.07.17 |