이전 페이지: eureka-client 설정
다음 페이지: gateway 생성
개요
- 작업을 하다보니 security 계정 정보가 application.yml에 담겨 있어서 admin 으로 모두 수정해서 보여줘야하는 번거러움이 있었음
- 또한 github 에도 해당 정보가 담겨서 들어가니 문제가 있다고 판단함.
- 보통 .env 파일에 만들어서 gitignore에 .env을 포함하는 방법을 사용한다고 하여 .env 파일을 생성하게 됨.
.env 파일 생성
- 사실 이전에 config server 에서 비밀키 관리 할때 .env를 생성한 적이 있음. -> https://back-jong.tistory.com/12
- 한번 더 설명 하자면 .env 파일은 다른 서비스 프로젝트들 모두 담고 있는 루트 프로젝트안에 생성하면 됨
- 이름은 그냥 .env가 전부임
private_key = "LmRQzVR ~ ••• ~ 0tLS0K"
security_username = "admin"
security_password = "admin"
- 이렇게 키-값 형태로만 저장이 가능함.
- 예전에 추가해둔 private_key 밑에 security_username과 security_password를 추가함
- 필자는 귀찮아서 admin 권한이 필요한 곳에 모두 같은 암호를 걸어서 해당 암호만 사용함(물론 위에 써둔건 예시임)
Dotenv 로 .env 파일 읽기
@SpringBootApplication
@EnableDiscoveryClient
public class KeupangUserApplication {
public static void main(String[] args) {
Dotenv dotenv = Dotenv.configure().directory("./") // .env 파일 경로 설정
.load();
System.setProperty("security_username", dotenv.get("security_username"));
System.setProperty("security_password", dotenv.get("security_password"));
SpringApplication.run(KeupangUserApplication.class, args);
}
}
- 주의할 점 docker 사용하는 분들은 다음 링크 참고 -> (예정)
- Dontenv.configure().directory("./").load(); 이부분을 보면 신기한점 있음.
- keupang -> keupang-user -> ••• -> KeupangUserApplication 이런 구조인데 KeupangUserApplication에서 './' 하면 자동으로 제일 최상단인 keupang으로 가서 './'으로 들어가고 그 안에 있는 .env를 찾아줌.
- 읽기를 성공하면 system에 키,값 형태로 속성 추가해줌
application.yml 수정
spring:
application:
name: user
profiles:
active: dev
config:
import: optional:configserver:http://admin:admin@eureka-server:9000
이런 식으로 security 설정된 곳에 접근할 때 username, password을 추가한 부분을 아래와 같이 수정해야함.
spring:
application:
name: user
profiles:
active: dev
config:
import: optional:configserver:http://${security_username}:${security_password}@eureka-server:9000
이렇게 하면 system에 추가한 속성으로 부터 값을 가져옴