martes, octubre 25, 2016

Encriptar password de datasource en wildfly 9

Tengo la necesidad de encriptar el password de mi data source para wildfly-9.0.2.Final.
El post que mas me ayudo fue uno de stackoverflow pero no pude echar a andar la línea de comando:


java -cp $JBOSS_HOME/modules/org/picketbox/main/picketbox-4.0.6..jar:$JBOSS_HOME/modules/org/jboss/logging/main/jboss-logging-3.1.0..jar:$CLASSPATH org.picketbox.datasource.security.SecureIdentityLoginModule password


Así que hice una clase:

package com.tattva;

import org.picketbox.datasource.security.SecureIdentityLoginModule;

public class Password {
public static void main(String[] args) {
String[] data = new String[] { "palabra_Secreta" };
try {
SecureIdentityLoginModule.main(data);
SecureIdentityLoginModule clazz = new SecureIdentityLoginModule();
clazz.main(args);
} catch (Exception e) {
e.printStackTrace();
}
}
}

Se tiene que agregar al classpath del proyecto la clase indicada en la línea de comando en mi caso:
%WILDFLY_9_HOME%/modules/system/layers/base/org/picketbox/main/picketbox-4.9.2.Final

Lo ejecuto dentro de eclipse como clase Java para obtener el siguiente:
Encoded password: -46df1f56015bcb73ad62074ab533e115

Posteriormente di de alta en el standalone.xml el dominio de seguridad:

<security-domain name="EncryptedPasswordEval" >
                    <authentication>
                        <login-module code="org.picketbox.datasource.security.SecureIdentityLoginModule" flag="required">
                            <module-option name="username" value="usuarioBD-desa"/>
                            <module-option name="password" value="-46df1f56015bcb73ad62074ab533e115"/>
                        </login-module>
</authentication>
                </security-domain>

Y dentro del datasource:
<datasource jta="true" jndi-name="java:jboss/proyectoDS" pool-name="evaluacionesDS" enabled="true" use-java-context="true" use-ccm="false">
<connection-url>jdbc:postgresql://127.0.0.1:5432/desarrollo</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<driver>postgresql</driver>
<pool>
<min-pool-size>2</min-pool-size>
<max-pool-size>20</max-pool-size>
</pool>
<security>
<security-domain>EncryptedPasswordEval</security-domain>
</security>
<validation>
<validate-on-match>false</validate-on-match>
<background-validation>false</background-validation>
<background-validation-millis>1</background-validation-millis>
</validation>
<statement>
<prepared-statement-cache-size>0</prepared-statement-cache-size>
<share-prepared-statements>false</share-prepared-statements>
</statement>
</datasource>

No hay comentarios.: