慕桂英4014372
2023-08-23 10:35:14
我正在嘗試將 java 應用程序與 azure ad 集成。我已經(jīng)在azure中注冊了一個應用程序并添加了重定向url,成功登錄后,它被重定向到我的java應用程序,我在其中使用msal庫獲取授權代碼。得到以下異常com.microsoft.aad.msal4j.MsalServiceException:AADSTS500112:回復地址“ http://testUrl ”與回復地址“ https://testUrl”不匹配我在上面的 URL 中看到的唯一區(qū)別是 http 和 https,盡管我在應用程序注冊中的重定向 URL 以及 Microsoft 登錄 URL 中的重定向 URL 中提到了 https。順便說一句,它正在與我的本地環(huán)境一起工作,而當我將其托管在服務器上時則不起作用。
2 回答

萬千封印
TA貢獻1891條經(jīng)驗 獲得超3個贊
部署到生產(chǎn)環(huán)境后,我們也遇到了同樣的問題。https 變成 http 的原因是因為我處于負載平衡環(huán)境中,外部 URL 與內(nèi)部 URL 不同(負載平衡器卸載了 SSL 處理)。當來自 azure 的 http 請求到達我們的 Web 過濾器時,httpRequest.getRequestURL().toString() 獲取 http 而不是 https。我們所做的是,要求 DevOps 團隊在 httprequest 中添加一個標頭,并將原始 url 發(fā)送到負載均衡器,并且在我們的代碼中,我們提取 http 標頭而不是 http 請求本身。
具體來說,改變
String currentUri = httpRequest.getRequestURL().toString();
到
String currentUri = httpRequest.req.getHeader(HEADER_PROXY_URL);
這HEADER_PROXY_URL
是 devops 注入原始 url 的標頭名稱。

楊__羊羊
TA貢獻1943條經(jīng)驗 獲得超7個贊
根據(jù)我的研究,網(wǎng)絡應用程序和服務的重定向 URL 必須以 schema 開頭https
。如果你想使用該方案http
,你就可以使用http:\\localhost
。
添加回答
舉報
0/150
提交
取消