JDBC URL 使用 JIRA 插件中的 Windows 身份验证连接到 SQL 服务器
JDBC URL connection to SQL Server using Windows Authentication in JIRA plugin
我现在已经束手无策了。我正在尝试将 JIRA 插件(Atlassian Java SDK)连接到 SQL Server 2012 数据库。我需要使用 Windows 身份验证,但 JIRA 正在记录:
com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication.
我读到可以通过将 sqljdbc_auth.dll
文件添加到程序的库路径来解决这个问题,但是除了基本的 JIRA dbconfig.xml
,我没有使用。这是使用代码在插件内建立的连接:
String url = String.format("jdbc:sqlserver://%s:1433;databaseName=%s;integratedSecurity=true;domain=XXXX;", server, database);
我已经尝试将 dll 文件添加到以下位置,但都无济于事:
C:/{JIRA INSTALL PATH}/bin
C:/{JIRA INSTALL PATH}/jre/bin
C:/{JAVA INSTALL PATH}/jre_8.x.x/bin
什么给了?
更新:
我已经进去在JIRA Windows 服务配置工具中将JDBC JAR/DLL 分别添加到classpath/library 路径中。仍然出现相同的错误。
更新 2:
我已经切换到使用 JTDS 驱动程序来查看 JIRA 是否由于某种原因无法使用标准 JDBC 驱动程序,但出现类似的错误:
java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.
我还创建了一个新的 Java 应用程序来在受控环境中对此进行测试,但是在将 ntlmauth.dll
文件添加到 C:\Windows\System32
目录后没有出现此错误。这让我相信这可能是 JIRA 中的错误,或者我配置不当。
经过数周的搜索,这是我自己的结论:
如果不使用密码(有时这就是使用 Windows/Active 目录凭据的全部意义),(目前)不可能做到这一点。但是,您可以将 JTDS 驱动程序与域、用户名和密码结合使用,以向需要 windows 身份验证的服务器进行身份验证。这并没有解决核心问题,但据我所知,这是目前唯一接近核心问题的解决方案。
我现在已经束手无策了。我正在尝试将 JIRA 插件(Atlassian Java SDK)连接到 SQL Server 2012 数据库。我需要使用 Windows 身份验证,但 JIRA 正在记录:
com.microsoft.sqlserver.jdbc.SQLServerException: This driver is not configured for integrated authentication.
我读到可以通过将 sqljdbc_auth.dll
文件添加到程序的库路径来解决这个问题,但是除了基本的 JIRA dbconfig.xml
,我没有使用。这是使用代码在插件内建立的连接:
String url = String.format("jdbc:sqlserver://%s:1433;databaseName=%s;integratedSecurity=true;domain=XXXX;", server, database);
我已经尝试将 dll 文件添加到以下位置,但都无济于事:
C:/{JIRA INSTALL PATH}/bin
C:/{JIRA INSTALL PATH}/jre/bin
C:/{JAVA INSTALL PATH}/jre_8.x.x/bin
什么给了?
更新: 我已经进去在JIRA Windows 服务配置工具中将JDBC JAR/DLL 分别添加到classpath/library 路径中。仍然出现相同的错误。
更新 2:
我已经切换到使用 JTDS 驱动程序来查看 JIRA 是否由于某种原因无法使用标准 JDBC 驱动程序,但出现类似的错误:
java.sql.SQLException: I/O Error: SSO Failed: Native SSPI library not loaded. Check the java.library.path system property.
我还创建了一个新的 Java 应用程序来在受控环境中对此进行测试,但是在将 ntlmauth.dll
文件添加到 C:\Windows\System32
目录后没有出现此错误。这让我相信这可能是 JIRA 中的错误,或者我配置不当。
经过数周的搜索,这是我自己的结论:
如果不使用密码(有时这就是使用 Windows/Active 目录凭据的全部意义),(目前)不可能做到这一点。但是,您可以将 JTDS 驱动程序与域、用户名和密码结合使用,以向需要 windows 身份验证的服务器进行身份验证。这并没有解决核心问题,但据我所知,这是目前唯一接近核心问题的解决方案。