Pregunta

Correr en un problema por el que nuestras fuentes de datos para dos diferentes DBMS (MS-SQL Server y Informix) no están recogiendo la configuración de seguridad entre dominios en el archivo login-config.xml.

Nuestros orígenes de datos de este aspecto:

    <datasources>
      <local-tx-datasource>
        <jndi-name>ourTX</jndi-name>
        <connection-url>jdbc:informix-sqli://our.server.com:1526/wlms:informixserver=ol_db</connection-url>
        <driver-class>com.informix.jdbc.IfxDriver</driver-class>
        <security-domain>ourDS</security-domain>
        <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
        <metadata>
           <type-mapping>InformixDB</type-mapping>
        </metadata>
        <min-pool-size>5</min-pool-size>
        <max-pool-size>50</max-pool-size>
        <prefill>yes</prefill>
        <prepared-statement-cache-size>10</prepared-statement-cache-size>
        <idle-timeout-minutes>5</idle-timeout-minutes>
        <new-connection-sql>set lock mode to wait 4;set isolation to cursor stability;</new-connection-sql>
        <check-valid-connection-sql>SELECT count(*) FROM dummy;</check-valid-connection-sql>
      </local-tx-datasource>
    </datasources>

Y nuestro login-config.xml tiene la siguiente entrada:

  <application-policy name="ourDS">
    <authentication>
      <login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required">
         <module-option name="userName">user</module-option>
         <module-option name="password">-4e5f8b6c4217c342c03b57ed16d31678</module-option>
         <module-option name="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=ourTX</module-option>
      </login-module>
    </authentication>
  </application-policy>

Sin embargo, una vez que se ha desplegado el servidor JBoss, obtenemos un error como este para Informix:

13:23:13,521 WARN  [JBossManagedConnectionPool] Throwable while attempting to get a new connection: null
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: Incorrect password or user com.informix.asf.IfxASFRemoteException: user@my.computer.com is not known on the database server.)

Y para MS-SQL Server obtenemos un error similar a Informix que se parece a:

13:25:23,053 WARN  [JBossManagedConnectionPool] Throwable while attempting to get a new connection: null
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user ''. The user is not associated with a trusted SQL Server connection.)

Ahora bien, si, comentamos el elemento de seguridad entre dominios en el archivo * -ds.xml y reemplazarlo con un nombre de usuario y una contraseña sencilla texto claro, tanto el trabajo fuente de datos con los dos motores de bases de datos. Estamos utilizando el 'todo' en la configuración del servidor JBoss. Nos hemos asegurado de que login-config.xml se está cargado en el arranque. Y el hqsqldb-ds.xml usando el elemento de seguridad entre dominios funciona. Pero el uso de nuestra añadida aplicación de la directiva al login-config.xml, parece que la fuente de datos no recibe los valores cuando se establece una nueva conexión.

Alguna idea de lo que estamos haciendo mal? ¿Nos hemos perdido algo?

¿Fue útil?

Solución

Nos estábamos probando la validez de la fuente de datos a través del administrador-consola. Debido al lugar donde estábamos probando la base de datos, esto es error en la versión de JBoss EAP 5.0.0.GA. Aunque no está confirmado, también puede ser un error, pero en el admin-consola para 5.0.1.GA y tal vez 5.0.2.GA.

Todo lo anterior estaba trabajando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top