Question

L'exécution dans un problème où nos sources de données pour deux SGBD différents (MS-SQLServer et Informix) ne sont pas ramasser la configuration de sécurité domaine dans le fichier login-config.xml.

Nos sources de données ressemblent à ceci:

    <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>

Et notre login-config.xml a l'entrée suivante:

  <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>

Cependant, une fois que le serveur JBoss est déployé, nous obtenons une erreur comme celui-ci pour 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.)

Et pour MS-SQLServer nous obtenons une erreur semblable à Informix qui ressemble à:

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.)

Maintenant, si nous commenter l'élément de sécurité domaine dans le fichier * -ds.xml et de le remplacer par un simple nom d'utilisateur et un mot de passe en texte clair, à la fois le travail de source de données avec les deux moteurs de base de données. Nous utilisons la configuration du serveur « all » dans JBoss. Nous avons fait en sorte que login-config.xml se charge au démarrage. Et le hqsqldb-ds.xml en utilisant l'élément de sécurité domaine fonctionne. Mais en utilisant notre application ajoutée à la politique login-config.xml, il semble que la source de données ne reçoit pas les valeurs lors de l'établissement d'une nouvelle connexion.

Toutes les idées que nous faisons de mal? Avons-nous oublié quelque chose?

Était-ce utile?

La solution

Nous avons testé la validité de la source de données par la console d'administration. En raison de l'endroit où nous testions la base de données, ce bug est dans la version JBoss EAP 5.0.0.GA. Bien que non confirmé, peut aussi être un bug, mais dans la console d'administration pour 5.0.1.GA et 5.0.2.GA peut-être.

Tout était en fait ci-dessus fonctionne.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top