본문 바로가기

WAS/JBoss_WildFly

[JBoss_WildFly] 데이터소스 - DB 접속 계정 password 암호화 (WildFly23 / JBoss7.4)

#. 테스트 환경

WildFly 23.0.2 (JDK8, 11)

JBoss 7.4.*

 


 

#. DB 접속 계정 password 노출

데이터소스 생성 시

아래와 같이 DB 접속 게정의 password가 노출되어 보안상 좋지 않다.

 


 

#. DB 접속 계정 password 암호화 

WildFly / JBoss 자체 기능으로는 password를 암호화 할 수 없다.

별도 스크립트를 통해 암호화한다.

 

jboss_datasource_encryption.sh

수정해야 할 부분은 맨 위에서부터 두 줄

1. JAVA_HOME : wildfly 혹은 jboss 에서 사용 중인 java 디렉토리 입력 (.../bin 까지) (JAVA SE 8, 11로 테스트 완료)

2. JBOSS_HOME : wildfly 혹은 jboss 의 home 디렉토리 입력

JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.15.0.9-2.el7_9.x86_64/bin
JBOSS_HOME=/app/wildfly/wildfly_2302
 
picketbox=`find ${JBOSS_HOME}/ -type f -name "picketbox*" | sort | head -n 1`
jboss_logging=`find ${JBOSS_HOME}/ -type f -name "jboss-logging*"`
module_name=org.picketbox.datasource.security.SecureIdentityLoginModule
 
export CLASSPATH=${picketbox}:${jboss_logging}
 
if [ -d $JAVA_HOME ]; then
    read -p "Input Database Password : " dbpassword
    ${JAVA_HOME}/java -cp ${CLASSPATH} ${module_name} ${dbpassword}
else
    echo "JAVA 1.8 is not installed. Please install and try again."
fi

 

 

jboss_datasource_encryption.sh 스크립트를 실행한다

password를 입력하면 암호화 된 패스워드가 생성된다

 

domain.xml 에서 수정 대상 데이터소스의 password 태그의 기존 값을

Encoded password 의 값으로 대체한다.

 

(수정 전)

 

(수정 이후)

 


 

#. Managed Console 에서 확인

데이터소스 메뉴로 이동하여 암호화 된 password 값을 확인한다.

DB Connection도 정상적으로 맺어지는지 확인.