0

我使用Spring-Boot-Admin來監視其執行程序端點使用基本身份驗證保護的SpringBoot應用程序。所需的憑據將傳送到Spring-Boot-Admin(SBA),如documentation中所述。 SBA本身也使用spring-boot-admin-server-ui-login和提供的SecurityConfiguration(基於文檔&示例應用程序,請參閱Github Repo獲取代碼)進行保護。 要監視的應用程序和SBA都通過docker進行部署。Jolokia端點上的Spring Boot Admin:401導致身份驗證失敗

登錄到SBA工作正常,我可以看到應用程序狀態以及健康結果。對於一些內容,我看到一個嵌套的登錄屏蔽。當我點擊「日誌記錄」或「JMX」時,我被重定向到登錄掩碼:Embedded login mask

在瀏覽器網絡選項卡中,我可以看到爲端點/jolokia返回401。之後的所有請求似乎都被轉發到登錄頁面。

我有以下問題:

  1. 我爲什麼要退出,如果一個請求的應用程序失敗?這是一個錯誤?
  2. 401的來源是什麼? SBA或我的應用程序?我知道SBA代理請求應用程序。根據我的應用程序的訪問日誌,當我登錄到SBA時,沒有請求到/jolokia。這是否意味着401直接由SBA返回?它的日誌雖然沒有任何相關性。
  3. 訪問/jolokia端點直接正常工作。即使我使用SBA使用的相同(代理)URL(例如http://XXX:8090/api/applications/XXX/jolokia/),它也可以工作。這是從SBA內部執行時有什麼不同?

我試着在SBA中找到更多的錯誤細節,但到目前爲止沒有找到正確的日誌記錄選項。它們或者不包含任何相關的或者太多的信息(例如Spring Security),這些信息似乎並不相關。記錄完整的響應可能會幫助...

編輯:我剛剛意識到,該請求/jolokia端點實際上包含不同的Cookie(曲奇:JSESSIONID = 4E51B84AE15A6890500F967B23EB92AC),比要求的工作端點(例如/metrics) 。這很奇怪,但可能解釋了爲什麼/jolokia端點返回401.現在的問題是:爲什麼它發送一個不同的cookie?

回答

0

我嘗試了各種各樣的東西,但最終無法解決這個問題。

我改爲使用不同的配置:端點(management.security.enabled=false)沒有任何安全性,但將它們暴露在不同的端口(management.port=8081)上。該管理端點被阻止,完全無法對系統進行外部訪問。

因此,SBA行爲良好,應用程序仍然安全。最後,它也是一個非常簡單的設置。