스프링 부트에서 중요한 자격 증명을 정의하는 가장 좋은 방법
Spring Boot 애플리케이션을 사용할 때 사용하는 방법이 다릅니다.application.properties
파일을 저장할 수 있습니다.
데이터베이스 구성, 서버 IP, 관리자 사용자 이름/암호 등과 같은 중요한 자격 증명을 입력합니다.
만약 누군가가 우리의 애플리케이션 속성을 얻고 모든 중요한 세부 사항을 알게 된다면 어떻게 될까 걱정입니다.
중요한 자격 증명을 어딘가에 저장하고 환경에 기반한 Spring Boot 애플리케이션에서 얻을 수 있는 좋은 방법이 있습니까?
많은 기술
토큰 대체 사용(마븐 대체자)
application.properties
spring.datasource.password=#MY_DB_PASSWORD#
토큰.속성#MY_DB_PASSWORD#=SECRET_PASSWORD
여기서 token.properties는 액세스 보호 기능을 가집니다.
환경 변수 사용
mvn spring-boot:run -Dspring.datasource.password=SECRET_PASSWORD
아니면 간단히
spring.datasource.password=${myDbPasswordEnv}
Jaspyt를 사용하여 속성 암호화
한 가지 해결책은 응용프로그램 속성에서 환경 변수 및 속성 자리 표시자를 사용하는 것입니다.예를 들어 데이터베이스의 암호를 저장하려고 합니다.환경 변수 생성:
setx DEV_DB_PASS <your_dev_database_password>
이제 응용 프로그램 속성 파일에서 이 값에 액세스할 수 있습니다.
spring.datasource.password = ${DEV_DB_PASS}
공식 문서를 참고하시면 됩니다.
환경 변수가 숨겨져 있다고 생각하지 마십시오. 프로세스 항목 환경에는 프로세스 소유자가 이러한 변수를 소유하고 있습니다.무명의 보안은 도움이 되지 않습니다.
# ls -asl /proc/6475/environ
0 -r-------- 1 karl karl 0 Sep 22 13:58 /proc/6475/environ
스프링 클라우드 구성을 사용해야 합니다.Git 저장소 등을 사용하여 중앙 위치에서 구성을 관리하는 데 가장 적합합니다.
언급URL : https://stackoverflow.com/questions/50928752/best-way-define-important-credentials-in-spring-boot
'bestsource' 카테고리의 다른 글
TypeScript로 대응 - 상태 비저장 함수에서 defaultProps 정의 (0) | 2023.06.23 |
---|---|
선택한 드롭다운 목록IndexChanged 이벤트가 발생하지 않음 (0) | 2023.06.23 |
SQL 화학: 계단식 삭제 (0) | 2023.06.23 |
몽고드브를 위한 몽구스 vs 몽구스. (0) | 2023.06.23 |
병합할 대상 분기를 변경하기 위해 GitHub에서 풀 요청을 수정하는 방법은 무엇입니까? (0) | 2023.06.23 |