Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-666

Add support to AppServerJDBCXARecovery for passwords encrypted for use with org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule

    XMLWordPrintable

    Details

      Description

      Attempting to recovery failed XA transactions from a datasource using:

      <security-domain>DefaultDSRealm</security-domain>

      Where the security realm's login module implementation is org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule. For example:

      <application-policy name = "DefaultDSRealm">
      <authentication>
      <login-module code = "org.jboss.resource.security.JaasSecurityDomainIdentityLoginModule"
      flag = "required">
      <module-option name = "username">user</module-option>
      <module-option name = "password">oLxZUT0uKnAfS.zbvaEZd</module-option>
      <module-option name = "managedConnectionFactoryName">jboss.jca:service=XATxCM,name=XAOracleDS</module-option>
      <module-option name = "jaasSecurityDomain">jboss.security:service=JaasSecurityDomain,domain=ServerMasterPassword</module-option>
      </login-module>
      </authentication>
      </application-policy>

      (See more discussion of this configuration at http://www.jboss.org/community/wiki/encryptingdatasourcepasswords)

      This exception is thrown:

      2009-12-03 09:53:20,388 ERROR [com.arjuna.ats.internal.jbossatx.jta.AppServerJDBCXARecovery] (Thread-6 AppServerJDBCXARecovery.createConnection got exception java.sql.SQLException: Invalid argument(s) in call
      java.sql.SQLException: Invalid argument(s) in call
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
      at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
      at oracle.jdbc.xa.client.OracleXADataSource.getXAConnection(OracleXADataSource.java:99)
      at com.arjuna.ats.internal.jbossatx.jta.AppServerJDBCXARecovery.createConnection(AppServerJDBCXARecovery.java:258)
      at com.arjuna.ats.internal.jbossatx.jta.AppServerJDBCXARecovery.getXAResource(AppServerJDBCXARecovery.java:115)
      at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.resourceInitiatedRecovery(XARecoveryModule.java:683)
      at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:179)
      at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWork(PeriodicRecovery.java:237)
      at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:163)

      This exception is thrown because com.arjuna.ats.internal.jbossatx.jta.AppServerJDBCXARecovery is attempting to create a connection without a username and password since it can't decrypt the password from the security domain.

        Gliffy Diagrams

          Attachments

            Issue Links

              Activity

                People

                • Assignee:
                  jhalliday Jonathan Halliday
                  Reporter:
                  jbertram Justin Bertram
                • Votes:
                  0 Vote for this issue
                  Watchers:
                  0 Start watching this issue

                  Dates

                  • Created:
                    Updated:
                    Resolved: