2016-12-09 4 views
1

Je suis actuellement au bout de mes peines. J'essaie de connecter un plugin JIRA (Atlassian Java SDK) à une base de données SQL Server 2012. Il est nécessaire que j'utilise l'authentification Windows, mais JIRA est l'exploitation forestière:Connexion d'URL JDBC à SQL Server à l'aide de l'authentification Windows dans le plug-in JIRA

com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication.

J'ai lu que cela peut être combattue en ajoutant le fichier sqljdbc_auth.dll à chemin de la bibliothèque du programme, mais il n'y a pas de références spécifiquement pour JIRA plugins sur comment faire cela, sauf pour la base JIRA dbconfig.xml, que je n'utilise pas. Ceci est une connexion établie dans le plug-in en utilisant le code:

String url = String.format("jdbc:sqlserver://%s:1433;databaseName=%s;integratedSecurity=true;domain=XXXX;", server, database); 

J'ai essayé d'ajouter le fichier dll aux endroits suivants, en vain:

  • C:/{JIRA INSTALL PATH}/bin
  • C:/{JIRA INSTALL PATH}/jre/bin
  • C:/{JAVA INSTALL PATH}/jre_8.x.x/bin

Ce qui donne?

MISE À JOUR: Je suis allé et a ajouté le JAR/DLL JDBC au classpath/chemin de la bibliothèque, respectivement dans l'outil de configuration de service JIRA de Windows. Encore obtenir la même erreur.

JIRA Windows Service Configuration Tool

MISE À JOUR 2:
Je suis passé à l'aide du pilote JTDS pour voir si JIRA était tout simplement pas en mesure d'utiliser le pilote standard JDBC pour une raison quelconque, mais obtenir une erreur semblable:

java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.

J'ai aussi créé une nouvelle application Java pour tester cela dans un environnement contrôlé, mais ne vous laissez pas cette erreur après avoir ajouté le fichier ntlmauth.dll dans le répertoire C:\Windows\System32. Cela m'amène à croire que cela peut être un bug dans JIRA ou que j'ai quelque chose de mal configuré.

+0

sans jira vous pouvez vous connecter normalement à cette base de données en utilisant jdbc? – Daniel

+0

Exactement ce que vous avez configuré, car votre capture d'écran ne montre pas les valeurs réelles utilisées. Notez que 1) 'java.library.path' doit pointer vers un ** dossier **, 2) le' sqljdbc_auth.dll' (auth, pas ath) vient dans une version 32 bits et 64 bits. Lequel vous devez utiliser dépend de la JVM utilisée, et 3) l'utilisateur qui exécute JIRA peut être un compte système local qui ne peut pas utiliser l'authentification Windows sur votre serveur SQL (bien que cela entraîne une erreur IIRC différente). –

+0

@MarkRotteveel Oui, 'java.library.path' pointe vers le dossier' C: \ Program Files \ Microsoft JDBC 4.0 pour SQL Server \ sqljdbc_4.0 \ x64' et non vers la DLL. La JVM utilisée par JIRA est la version 64 bits, car c'est la version de JIRA/Java que j'ai installée. –

Répondre

0

Voici ma propre conclusion après plusieurs semaines de recherche:

Il est (actuellement) impossible de le faire sans l'utilisation d'un mot de passe (ce qui est parfois le point entier d'utiliser les informations d'identification de Windows/Active Directory). Vous pouvez cependant utiliser le pilote JTDS en jonction avec un domaine, un nom d'utilisateur et un mot de passe pour vous authentifier auprès des serveurs nécessitant une authentification Windows. Cela ne résout pas le problème principal, mais d'après ce que je peux dire, c'est la seule solution actuelle assez proche.