簡體   English   中英

如何通過 Azure Active Directory 用戶與 Azure 上的 MS SQL Server 建立 JDBC 連接

[英]How to make a JDBC connection to MS SQL Server on Azure via Azure Active Directory User

我有一個 J2EE Web 應用程序。 數據庫連接是通過 JDBC 建立的。 現在需要在 Azure 雲上部署 Web 應用程序。 需要對 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) 

我正在添加缺少的罐子。 但似乎應該有更好的方法來做到這一點。 在這方面的任何幫助將不勝感激。

使用 maven 很容易解決問題。 Microsoft Azure jdbc 驅動程序沒有附帶它需要的運行時依賴 jar。 簡單的解決方法是使用 maven。 pom.xml 應具有以下依賴項。 正如猜測的那樣,Maven 完成了下載所有依賴項 jar 的所有艱苦工作。

您的 pom.xml 中需要以下依賴項

<dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>7.4.1.jre8</version>
    </dependency>

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>adal4j</artifactId>
        <version>1.6.6</version>
    </dependency>

需要 adal4j,azure 為我們提供了通過 oauth 2.0 使用聯合或活動目錄用戶登錄 sql server 的能力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM