ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 젠킨스 - Git 스프링 프로젝트 배포시 별도 설정파일로 키값 숨기기
    IT, 프로그래밍/Jenkins 2018. 10. 5. 16:00

    보통 프로젝트를 진행하면 DB 커넥션에 관한 계정에 대한 정보와 API키 등을 설정파일에 적어두어 연결 시 사용합니다.


    문제는 Git의 원격 저장소에 push되어 소스가 올라갈 때 이런 중요한 설정 정보들도 그대로 올라간다는 점인데요.


    만약 이를 방지하기 위해 .gitignore로 설정하면, 원격 저장소로 푸쉬될 때 파일 자체가 올라가지 않아 젠킨스로 배포시 문제가 생기게 됩니다.


    이 문제를 해결하기 위해 로컬 pc에 설정파일을 저장한 후에, 이 파일에서 중요한 정보들을 가져오는 방식을 사용 하겠습니다.


    (이 방법도 사실 파일 경로가 올라가야해서 적합한 방식이라고는 할 수는 없습니다.)




    1. 우선 로컬환경에 적합한 경로를 골라 파일명.properties 파일을 생성해 줍니다.



    2. 파일에 매핑할 요소를 정의해줍니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    #Connection Properties
    #db properties info..
     
    #MongoDB
     
    mongo.port = 20000
    mongo.id = 몽고아이디
    mongo.pwd = 몽고비번
     
    #Oracle
     
     
    #AWS
     
    #RDS
     
    cs



    3. PropertyPlaceholderConfigurer 를 빈즈로 등록해 줍니다. 속성 중 ignoreUnresolvablePlaceholders 옵션을 true로 설정하면, 만약 설정 요소가 존재하지 않아도 서버를 멈추지 않고 정상적으로 작동될 수 있도록 해줍니다.


    1
    2
    3
    4
    5
    6
    7
    8
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        
        <property name="locations">
        <value>파일 위치/파일.properties</value>
        </property>
        <property name="ignoreUnresolvablePlaceholders" value="true"/>
        
    </bean>
    cs



    4. ${}을 사용하면 xml상에서 매핑할 수 있습니다.


    1
    2
    <mongo:mongo-client id="mongo" host="127.0.0.1" port="${mongo.port}" credentials="${mongo.id}:${mongo.pwd}@admin">
     
    cs



    5. 자바코드상에서는 @Value 어노테이션을 사용하여 접근할 수 있습니다.




    관련 레퍼런스 첨부합니다.


    http://yjacket.tistory.com/45

Designed by Tistory.