Description:
The datasource xml files for GM store the password in plain-text when GM is installed on jboss. Here are steps on how to encrypt these.
Solution:
1.1 Encrypting GM Data Source Password
CA GM application uses four databases
By default all DS configuration files are configured holding the database password in plain text. The org.jboss.resource.security.SecureIdentityLoginModule can be used to encrypt database passwords rather than using clear text passwords in the datasource configuration. JBoss uses a hard-coded password to encrypt/decrypt the datasource password when starting up.
High level steps to configure JBOSS to use encrypted Datasource password:
1. eurekify-ds.xml : DS configuration for eurekify_sdb and eurekify_ticketdb database2. reportdb-ds.xml : DS configuration for gvm_datawarehouse database3. wp-ds.xml : DS configuration for WPDS (Workpoint) database.
1.1.1 Encrypting data source password
1.1.2 Using Encrypted Datasource password for GM Databases
----- start copy <!-- eurekify Database Password Encryption Policy --> <application-policy name="eurekify_SDB"> <authentication> <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required"> <module-option name="username">CARCMUser</module-option> <module-option name="password">passwordhash</module-option> <module-option name="managedConnectionFactoryName">jboss.jca:name=jdbc/eurekifyDS,service=LocalTxCM</module-option> </login-module> </authentication></application-policy> <application-policy name="eurekify_TicketDB"> <authentication> <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required"> <module-option name="username">CARCMUser</module-option> <module-option name="password">passwordhash</module-option> <module-option name="managedConnectionFactoryName">jboss.jca:name=jdbc/eurekifyTmsDS,service=LocalTxCM</module-option> </login-module> </authentication></application-policy> <application-policy name="eurekify_ReportDB"> <authentication> <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required"> <module-option name="username">CARCMUser</module-option> <module-option name="password">passwordhash</module-option> <module-option name="managedConnectionFactoryName">jboss.jca:name=jdbc/eurekifyReportdbDS,service=LocalTxCM</module-option> </login-module> </authentication></application-policy> <application-policy name="eurekify_WP"> <authentication> <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required"> <module-option name="username">CARCMUser</module-option> <module-option name="password">passwordhash</module-option> <module-option name="managedConnectionFactoryName">jboss.jca:name=jdbc/WPDS,service=LocalTxCM</module-option> </login-module> </authentication></application-policy>
<security-domain>eurekify_TicketDB</security-domain> The eurekify-ds.xml file should look like the following: ...<driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class><!-- <user-name>CARCMUser</user-name><password>password</password> --><security-domain>eurekify_SDB</security-domain>......<driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class><!-- <user-name>CARCMUser</user-name><password>password</password>" --><security-domain>eurekify_TicketDB</security-domain>...
<Please see attached file for image>
<security-domain>eurekify_ReportDB</security-domain> The reportdb-ds.xml file should look like the following: ... <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class><!-- <user-name>CARCMUser</user-name><password>password</password> --><security-domain>eurekify_ReportDB</security-domain> ...
<security-domain>eurekify_WP</security-domain> The wp-ds.xml file should look like the following: <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class><!- <user-name>CARCMUser</user-name><password>password</password> --><security-domain>eurekify_WP</security-domain>