2014. 10. 21. 17:57 was
Tomcat Server.xml DBCP 설정 부분 암호화 방법
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"/>
'was' 카테고리의 다른 글
메모 (0) | 2015.01.26 |
---|---|
이중화 관련 (0) | 2014.12.25 |
Spring + Tomcat + Postgresql DataBase Connection Pool 설정 (0) | 2014.10.20 |
톰캣7 Log4j 적용 방법 (0) | 2014.09.29 |
[링크]Apache Tomcat Tuning (아파치 톰캣 튜닝 가이드) (0) | 2013.09.05 |