개발 이야기/Java

[JBoss 보안] DataSource 패스워드 암호화

시반 2007. 6. 26. 17:58

JBoss의 DataSource 설정파일은 XXX-ds.xml 파일로 되어 있으며

해당 데이타베이스의 패스워드는 텍스트파일로 되어 있기 때문에 JBoss에서는 패스워드를 암호화함으로써

패스워드 노출에 대한 위험성을 최소화할수 있는 기능을 제공한다

 

1. ../conf/login-config.xml에서 다음과 같이 설정한다

 

    <application-policy name="encrypted-ds-domain">
      <authentication>
        <login-module code="org.jboss.resource.security.SecureIdentityLoginModule"
          flag="required">
          <module-option name="username">scott</module-option>
          <module-option name="password">69514c88069891884686a773aa4001eb</module-option>
          <module-option name="managedConnectionFactory">

               jboss.jca:service=LocalTxCM,name=MyDatasource</module-option>
        </login-module>
      </authentication>
    </application-policy>   

 

2.  패스워드 생성방법

 

$set CLASSPATH=lib/jboss-jmx.jar:lib/jboss-common.jar:server/default/lib/jboss-jca.jar:server/default/lib/jbosssx.jar

 

$java org.jboss.resource.security.SecureIdentityLoginModule newpassword

Encoded password:69514c88069891884686a773aa4001eb

 

3. 이후 Datasource 설정파일에서 해당 도메인을 사용한다

   즉 XXX-ds.xml 의 security-domain 에  1.에서 설정한 도메인 네임을 적으면 된다

   위의 예를 들면 ../deploy/MyDatasource-ds.xml를 열어 다음과 같이 작성한다

 

  <jndi-name>iscmsDS</jndi-name>
   .......

    <security-domain>encrypted-ds-domain</security-domain>
   .......

  </local-tx-datasource>