올라운더
358
2021-04-09 08:42:34
10
244

스프링 프레임워크 디비 계정정보 파일 추출


안녕하십니까 선배님들 


도움이 필요한 개발자 입니다


다름이 아니라 스프링프로젝트를 톰캣으로 서버를 시작할시에 


디비계정정보를 스프링 프레임워크 yml 파일이나 properties 파일이나 xml에 직접넣지 않고


외부 파일에 디비 접속정보를 넣고 스프링에서 해당 파일을 읽어서 데이터소스쪽에 접속 정보를 넣고 싶은데 


이게 가능한지 가능하다면 방법이 궁금해서 이렇게 글을 작성하게 됐습니다 


알고 계신 지식있으시면 도움좀 부탁 드리겠습니다


감사합니다


0
  • 답변 10

  • Ormus
    1k
    2021-04-09 08:52:47

    외부파일로 빼고 파일을 읽어서 가능합니다

  • aprilshower
    214
    2021-04-09 09:12:10

    본인의 배포 환경을 공유해주면 좋을 것 같습니다.

  • 방황하는젊은이
    1k
    2021-04-09 09:12:17

    데이터베이스 접속정보를 암호화해서 관리해도 됩니다.


    https://blog.naver.com/action1020/222299300829

  • 올라운더
    358
    2021-04-09 10:16:15

    @Ormus


    선배님 답변 감사합니다.


    혹시  방법을 좀 알 수 있을까요 ㅜㅜ

  • 올라운더
    358
    2021-04-09 10:20:25

    @aprilshower


    선배님 답변 감사합니다.


    음 환경은 스프링 레가시 프로젝트이구


    현재 디비 접속 정보는 프로퍼티에 넣어뒀고


    context-datasource에서 프로퍼티에서 넣어둔 접속 정보를 읽어서 하고 있습니다.


    근데 프로퍼티에서 하는게 아니라, 아예 별도의 외부 파일에서 디비접속 정보를 읽어서 


    context-datasource에 해당 접속 정보를 넣고 싶은 상황입니다...


    생각은 static  메서드에서 파일 읽어서 그 접속 정보만 빈에 넣으면 될거 같은데... 이거 방법을 모르겠어서 이렇게 질문을 올린겁니다..


    감사합니다.

  • 올라운더
    358
    2021-04-09 10:21:29

    @방황하는젊은이


    선배님 답변 감사합니다.


    그 방법도 알긴 하는데 저는 외부 파일을 읽어서 해야 할거 같아서 이렇게 질문을 올린겁니다 ㅜㅜ




  • aprilshower
    214
    2021-04-09 12:19:36 작성 2021-04-09 12:24:21 수정됨

    제가 여쭤본건  개발 환경이 아니라  `배포 환경`   에 대해서 였습니다.

    application.properties 에 secret  정보를 넣지 않기 위해서 질문 한 것으로 이해했습니다.

    방법은 두 가지 정도 아닌가요?

    1.  환경변수에 주입한다.
    2.  applicaiton.properties 파일을 외부에서 복사한다.

    spring cloud config, github secret, k8s config map/volume 

    외부 파일의 정의가 뭔가요?

  • 올라운더
    358
    2021-04-09 12:57:11

    @aprilshower


    그냥 일반 바이너리파일입니다. 확장자는 아무 확장자입니다.  txt 일수도 있구요.  그 안에 암호화된 데이터(디비정보)가 저장되어 있고,


    그 데이터를 읽어서 복호화해서 스프링 프로젝트에서 디비 접속정보를 사용하고 싶은겁니다.



  • aprilshower
    214
    2021-04-09 13:23:49

    외부 파일이라고 해서 다른 서버에 있는 파일로 생각했는데,  
    동일 서버의 파일인 것 같군요.

    배포 과정에서 jar 파일을 실행시키기 전에  쉘 스크립트로  암호를 해독해서 env 로 주입하거나, application.properties  파일을 만들거나 실행 인자에 넣어주면 되지 않을까요?

  • 올라운더
    358
    2021-04-09 14:10:43

    @aprilshower


    네 동일 서버의 파일입니다!


    env로 주입하는 방법은 스프링 Environment객체를 사용하라는 말씀은 맞나요??


    서버 실행 전에 암호해독해서 프로퍼티 파일 만드는 방법도 고려해봐야 할것 같습니다.


    도움주셔서 정말 감사합니다!!

  • 로그인을 하시면 답변을 등록할 수 있습니다.