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行为良好,应用程序仍然安全。最后,它也是一个非常简单的设置。