Pergunta

correndo em um problema onde as nossas origens de dados para dois DBMS diferentes (MS-SQLServer e Informix) não estão pegando a configuração de segurança de domínio no arquivo login-config.xml.

As nossas fontes de dados parecido com este:

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

E o nosso login-config.xml tem a seguinte 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>

No entanto, uma vez que o servidor JBoss for implantado, teremos um erro 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.)

E para MS-SQLServer obtemos um erro semelhante à Informix que se parece com:

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

Agora, se, nós comentar o elemento de segurança de domínio no arquivo * -ds.xml e substituí-lo com um nome de usuário simples e um texto claro senha, ambos trabalham fonte de dados com ambos os motores de banco de dados. Estamos usando o 'all' configuração do servidor no JBoss. Temos a certeza que login-config.xml está sendo carregado no start-up. E o hqsqldb-ds.xml usando as obras elemento de segurança de domínio. Mas usar nossa aplicação em políticas adicionado ao login-config.xml, parece que a fonte de dados não obter os valores ao estabelecer uma nova conexão.

Todas as idéias que estamos fazendo de errado? Nós perdemos alguma coisa?

Foi útil?

Solução

Estávamos testando a validade da fonte de dados através do admin-console. Por causa de onde estávamos a testar o banco de dados, este é bug na versão JBoss EAP 5.0.0.GA. Apesar de não confirmado, também pode ser um, mas bug no admin-console para 5.0.1.GA e talvez 5.0.2.GA.

Tudo acima foi realmente trabalhando.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top