【发布时间】:2020-10-22 16:20:22
【问题描述】:
我有一个 J2EE Web 应用程序。数据库连接是通过 JDBC 建立的。现在需要将 Web 应用程序部署在 Azure 云上。需要与 MS SQL Server 建立 JDBC 连接。对数据库的身份验证是“ActiveDirectoryPassword”
我找到了 java 库。似乎代码正在寻找较旧的库:adal4j-1.6.6.jar 而不是较新的版本:msal4j-1.7.1.jar
加载 msal4j-1.7.1 后,我仍然收到错误消息:加载 ADAL4J Java 库失败。
对于较旧的库,我会收到不同的消息和日志条目:
对于较旧的库,我会收到不同的消息和日志条目: 10-20@16:19:22293041 错误 [http-nio-8080-exec-9] labware.web.admin.DataSourceBean - 在方法 saveDS 中保存数据源时出错。
java.lang.NoClassDefFoundError: com/nimbusds/oauth2/sdk/AuthorizationGrant
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.adalContextExists(SQLServerConnection.java:4546)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.getFedAuthToken(SQLServerConnection.java:4438)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.onFedAuthInfo(SQLServerConnection.java:4415)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.processFedAuthInfo(SQLServerConnection.java:4380)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onFedAuthInfo(tdsparser.java:289)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:125)
我正在添加缺少的罐子。但似乎应该有更好的方法来做到这一点。在这方面的任何帮助将不胜感激。
【问题讨论】:
-
连接字符串是什么?
-
jdbc:sqlserver://
:1433;database=MyDatabase;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;authentication=ActiveDirectoryPassword 添加传递给这个用户名和密码。这里还要更新一点,代码是传统的JDBC API代码
标签: sql-server jdbc azure-active-directory