티스토리 뷰
SpringBoot Intellij에서 Environment Variable을 application.yml에 넣기
KyeongRok Kim 2023. 1. 5. 15:41
application.yml에 민감 정보가 들어가는 경우 실수로 git에 올라가는 경우 해킹을 당할 수 있습니다.
아래와 같이 db접속 정보가 모두 노출이 되어 있습니다.
application.yml
spring:
# 배포 시에 환경변수에 DB 정보를 넣어줘서 서버 DB 사용
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/feedback
username: root
password: 1234
jpa:
show-sql: true
database-platform: org.hibernate.dialect.MySQL8Dialect
database: mysql
hibernate:
ddl-auto: update
# JDBC TimeZone Setting
properties:
hibernate:
jdbc:
time_zone: Asia/Seoul
# Swagger 3.0.0 적용
mvc:
pathmatch:
matching-strategy: ant_path_matcher
# Jwt Secret Key
jwt:
token:
secret: secret123123
# 한글 깨지는 현상 방지
server:
port: 8080
servlet:
encoding:
force-response: true
application-dev.yml, application-qa.yml, application-prd.yml 이런식으로 분리해서 쓰고 application-prd.yml의 경우는 gitignore에 넣어서 git에 안올라가게 쓰곤 합니다만 손이 좀더 가는 방법입니다.
Environment Variable 쓰기
저는 대신 Environment Variable을 씁니다. 이 방법은 k8s의 configmap을 이용해 Environment Variable을 넘길때 썼던 방법을 Intelli J에 적용한 것입니다.
localhost의 접속정보라면 크게 상관은 없지만 실제 db접속정보가 실수로라도 들어가서 git에 올라가면 바로 해킹 당합니다.
Spring은 Environment Variable의 값을 읽어서 설정값을 사용하기 때문에 application.yml에 있는 값을 Environment Variable로 대체 할 수 있습니다.
Intellij에서 실행할 때 Edit Configurations...을 눌러서 Environment Variable을 입력할 수 있습니다.
형식은 아래와 같습니다.
SPRING_DATASOURCE_URL=jdbc:mysql://<db_host>:3306/<db_name>;SPRING_DATASOURCE_PASSWORD=<db_password>
application.yml의 spring.datasource.url을 바꾸고 싶다면 SPRING_DATASOURCE_URL 이렇게 모두 대문자로 바꾸고 .대신 _로 바꿔주면 됩니다.
application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/feedback
username: root
password: 1234
'Spring > Spring Boot(스프링 부트)' 카테고리의 다른 글
SpringBoot 3.x로 마이그레이션 이슈 (1) | 2023.01.19 |
---|---|
SpringBoot 3.x에서 Security변경사항 (0) | 2023.01.17 |
H2를 이용해 테스트 하기 (0) | 2023.01.05 |
@WebMvcTest로 Controller테스트 하기 (0) | 2022.12.28 |
Swagger에서 Jwt Token으로 테스트 하기 (0) | 2022.12.21 |
- Total
- Today
- Yesterday
- docker container
- 2017 티스토리 결산
- 도커각티슈케이스
- 도커티슈박스
- shellscript
- 이직
- 도커각티슈박스
- docker container tissue
- docker container tissue box
- vim
- Linux
- docker container case
- 도커컨테이너
- 개발자
- docker container whale
- Sh
- 도커티슈케이스
- 싱가폴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |