tomcat 의 설정 파일 server.xml에서 DB Connection Pool 부분이 평문으로 노출되는 경우를

방지하기 위해 암호화 처리 하는 방법이다.


1 암/복호화 가능한 암호화 방법을 선택

 예) Seed

2 암호화 소스를 이용해서

 server.xml 에서 DBCP 설정 부분의 

<Resource auth="Container" driverClassName="org.postgresql.Driver" maxActive="10" maxIdle="10" maxWait="-1" name="jdbc/postgres" password="test" type="javax.sql.DataSource" url="jdbc:postgresql://192.111.1.10:5432/test" username="test"/>

에서 url, username, password 를 암호화 한다.

 url = uTtsYsssHEWYc18xvhFVN/HvqKNYa4VxBEYz1Sssl8GrJbLmsswHw+W3a2PLhuAAIEIxgWc

 username = xxxajbSpxxxiAp82g=

 password = xajxxxxxxxxbSxpiAp82g=

3 apache tomcat 홈페이지에서

tomcat-dbcp.jar 파일 소스를 다운 받아서

BasicDataSourceFactory.java 파일을 적당한 EncriptDataSourceFactory.java 파일로 소스를

복사한다. 저 파일에서 수정할 부분은

중간 부분

properties.getProperty(PROP_URL),

properties.getProperty(PROP_USERNAME),

properties.getProperty(PROP_PASSWORD)

세군데 이다.

저 부분을 위에서 암호화 처리 했으니 복호화 하는 로직으로 바꿔 주면 된다.

EncriptDataSourceFactory.java 파일에

적당한 static 메소드를 하나 추가하자

descript 라는 메소드라고 치고


// server.xml 에 있는 값을 복호화 하는 로직을 넣어주자.

private static String descriptParameter(String encriptValue) throws Exception {
        return DESEncript.decrypt(encriptValue);
}

저 메서드를 이용해서 위에 세곳 소스를

properties.getProperty( descriptParameter(PROP_URL) ) 의 형태로 바꿔 주면 된다.

4 EncriptDataSourceFactory.java 를 jar 로 말아서

 CATALINA_HOME/lib 에 넣어 둔다.

5 server.xml 을 열어서

<Resource 부분에 factory 에 내가 만든 java 파일을 설정하면 끝


<Resource auth="Container" driverClassName="org.postgresql.Driver" maxActive="10" maxIdle="10" maxWait="-1" name="jdbc/postgres" password="xajxxxxxxxxbSxpiAp82g=" type="javax.sql.DataSource"
      factory="kr.co.gt1000.datasourcefactory.EncriptDataSourceFactory"

    url="uTtsYsssHEWYc18xvhFVN/HvqKNYa4VxBEYz1Sssl8GrJbLmsswHw+W3a2PLhuAAIEIxgWc"
      username="xxxajbSpxxxiAp82g"/>





저작자 표시
신고
Posted by gt1000

블로그 이미지
gt1000

태그목록

공지사항

어제202
오늘23
125,389

달력

 « |  » 2017.07
            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          

최근에 받은 트랙백

글 보관함


티스토리 툴바