Quando um datasource é configurado no Jboss, as informações de usuário e senha são armazenadas em cleartext no arquivo datasource-ds.xml. Para não manter estas informações abertas no arquivo, existe a possibilidade de codificar a senha. Basicamente, a senha é codificada e inserida em um “Security-Domain”, que é utilizado pelo datasource para fazer a autenticação no banco de dados.
Importante: Não faça alterações nos arquivos do Jboss se não tiver conhecimento de sua estrutura. Como a maioria dos arquivos de configuração está em formato xml, qualquer alteração indevida ou erro de sintaxe poderá ocasionar a parada do servidor de aplicação. Lembrando que é de extrema importância a realização de um backup antes de iniciar estes procedimentos. Com o backup pronto, mãos a obra:
O primeiro passo é gerar a senha codificada, a partir do comando abaixo:
java -cp lib/jboss-common.jar;lib/jboss-jmx.jar;server/default/lib/jbosssx.jar;server/default/lib/jboss-jca.jar org.jboss.resource.security.SecureIdentityLoginModule senha
Este comando retornará a senha codificada (Encoded Password):

Com a senha codificada em mãos, criaremos um novo Security Domain, onde serão armazenadas as informações do login (JBOSS_SERVER\conf\login-config.xml).
<application-policy name="ems-encrypted-password">
<authentication>
<login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required">
<module-option name="username">pub</module-option>
<module-option name="password">2c077faef802b2d1</module-option>
<module-option name="managedConnectionFactoryName">jboss.jca:name=ems,service=LocalTxCM</module-option>
</login-module>
</authentication>
</application-policy>
Deve ser criado um Security Domain (application-policy) para cada banco de dados, mesmo que as informações de login sejam iguais. Isso é necessário pois a opção managedConnectionFactoryName recebe como valor o nome da conexão que é criada no arquivo datasource-ds.xml.
Substitua as informações de login do arquivo datasource-ds.xml, para que o datasource faça a autenticação com as informações do Security Domain (negrito):
<local-tx-datasource>
<jndi-name>ems</jndi-name>
<connection-url>jdbc:datadirect:openedge://THUNDERCATS:23620;databaseName=emsdev</connection-url>
<driver-class>com.ddtek.jdbc.openedge.OpenEdgeDriver</driver-class>
<security-domain>ems-encrypted-password</security-domain>
<new-connection-sql>select count(*) from dtsuser</new-connection-sql>
<check-valid-connection-sql>select count(*) from dtsuser</check-valid-connection-sql>
<metadata>
<type-mapping>PostgreSQL 7.2</type-mapping>
</metadata>
<min-pool-size>5</min-pool-size>
<max-pool-size>10</max-pool-size>
</local-tx-datasource>
Se a instância estiver em execução durante este procedimento, ao salvar o arquivo o Jboss fará a leitura do arquivo datasource-ds.xml automaticamente, o que poderá gerar alguns exceptions. Porém, recomenda-se executar esta configuração com a instância parada.
Ao final do processo, inicie o Jboss e verifique se existe algum erro de conexão nos logs. Também é importante fazer um teste na aplicação, para ter certeza que as rotinas que façam conexão aos bancos estão operacionais.