Comment puis-je configurer une source de données SQL Server dans JBoss pour vous connecter à l'aide d'un utilisateur Active Directory?

JBoss s'exécute en tant qu'utilisateur Active Directory ABC\appuser. Je veux me connecter à un Serveur MS SQL server 8.0 base de données utilisateur AD ABC\dbuser. À l'aide du paramètre integratedSecurity=true, sauf si je précise user=ABC\dbuser;password=dbpass sur l'url de connexion, le système va essayer de vous connecter en tant que service d'ANNONCES d'utilisateur, ABC\appuser.

Par cette question, j'ai confirmé que par l'aide de l'url suivante, je peux me connecter à la base de données comme ABC\dbuser lors de l'exécution de l'application en ABC\appuser:

jdbc:sqlserver://MYHOSTNAME:1433;DatabaseName=MyDatabaseName;integratedSecurity=true;user=ABC\dbuser;password=dbpass

Malheureusement, lorsque j'ai mis l'url de la source de données dans la configuration de JBoss xml ( JBoss\jboss-eap-6.1.0\standalone\configuration\standalone.xml ) comme suit:

<datasource jndi-name="java:jboss/datasources/MyDatabaseName" pool-name="MyPoolName" enabled="true" use-java-context="true">
  <connection-url>jdbc:sqlserver://MYHOSTNAME:1433;DatabaseName=MyDatabaseName;integratedSecurity=true;user=ABC\dbuser;password=dbpass</connection-url>
  <driver>sqlserver</driver>
  <pool>
    <min-pool-size>1</min-pool-size>
    <max-pool-size>10</max-pool-size>
    <prefill>true</prefill>
  </pool>
  <security>
    <user-name></user-name>
    <password></password>
  </security>
</datasource>

Je suis incapable de créer le pool de ressources avec cet avertissement:

WARN  
[org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (JCA PoolFiller) 
IJ000610: Unable to fill pool: 
javax.resource.ResourceException: Could not create connection

Valeurs de réglage pour les user-name et password les entrées XML crée un échec similaire avertissement.

Ma solution actuelle options semblent être les suivants:

  1. s'étendant selon la classe à l'aide de JBoss est de créer la source de données, pour la remplacer par une classe personnalisée qui s'applique le connection-url valeur comme prévu ou
  2. changement de JBoss pour exécuter en tant que ABC\dbuser ou
  3. donner le service JBoss utilisateur ABC\appuser accès de base de données soit en lui donnant un accès direct ou de l'ajouter à un Groupe d'ANNONCES avec accès.

Aucune de ces solutions de contournement est préférable; il doit être un plus élégant, la solution retenue. Comment puis-je résoudre ce problème?

OriginalL'auteur JoshDM | 2014-07-11