개요
지난번 작성했던 글에 이어 어떻게 민감정보를 숨기는지에 대해 작성하려고 합니다.
application.properties 또는 application.yml 파일을 작성하다 보면 datasource.username, datasource.password와 같이 형상관리 페이지에는 숨기고 싶은 정보들이 존재합니다.
이를 숨기거나 암호화할 수 있는 방법이 여러 개 존재하는데, 이 중 사용자 입력을 통해 application.yml에 Argument 전달하는 방법을 포스팅합니다.
결과물
java -jar {jar 경로} --datasource.username=강승현 --datasource.password=비밀번호 --datasource.url=링크
위와 같이 --변수명=value 형태로 값을 전달하게 될 것입니다.
방법
.properties나 .yml 둘 중 어떤 것을 사용해도 상관없습니다.
.yml 사용 시
spring:
datasource:
url: ${datasource.url}
username: ${datasource.username}
password: ${datasource.password}
.properties 사용 시
spring.datasource.url: ${datasource.url}
spring.datasource.username: ${datasource.username}
spring.datasource.password: ${datasource.password}
여기서 ${ } 를 통해 argument 이름을 정할 수 있으며 상황에 맞게 원하는 이름으로 변경하면 됩니다.
저는 datasource의 username임을 명시하기 위해 datasource.username을 사용했지만 입력 시 너무 귀찮다고 하면, username 또는 USERNAME 처럼 대문자로 명시해도 됩니다.
이곳에 명시된 argument는 command에서 입력될 때 같은 이름이어야 합니다.
예시
민감정보인 username을 전달한다고 가정하겠습니다.
spring:
datasource:
username: ${DATASOURCE_USERNAME}
위와 같이 네이밍을 했다면 커맨드에선 아래와 같이 전달하면 됩니다.
java -jar {jar 경로} --DATASOURCE_USERNAME=강승현
'Tech > Java&Spring' 카테고리의 다른 글
try-with-resources와 native 영역 (0) | 2023.03.11 |
---|---|
[SpringBoot] Intellij spring boot 프로젝트 생성 방법 (0) | 2022.01.10 |
Spring 환경에서 Docker run으로 jar에 argument 전달하기 (2) | 2021.11.24 |
[Spring] Swagger ui Failed to load API definition 에러 (0) | 2021.09.22 |
[Java] Error와 Exception에 대해 (0) | 2021.02.21 |