Spring boot 隐藏Spring Boot Actuator中健康指示器的详细信息

Spring boot 隐藏Spring Boot Actuator中健康指示器的详细信息,spring-boot,spring-boot-actuator,Spring Boot,Spring Boot Actuator,我正在使用执行器上的Spring Boot健康指示器。到目前为止,示例响应如下所示: { "status":"DOWN", "details": { "diskSpace": { "status":"UP", "details": { "total":499963170816, "free":250067189760, "threshold":10485760

我正在使用执行器上的Spring Boot健康指示器。到目前为止,示例响应如下所示:

{
   "status":"DOWN",
   "details": {
      "diskSpace": {
         "status":"UP",
         "details": {
            "total":499963170816,
            "free":250067189760,
            "threshold":10485760
         }
      }
   }
}
因为我需要公开
/exactor/health
端点,所以我需要隐藏健康指标的详细信息,所以我希望得到如下结果:

{
   "status":"DOWN",
   "details": {
      "diskSpace": {
         "status":"UP"
      }
   }
}
对于磁盘空间来说,这不是一个大问题,但对于数据库,我不想在其停机时共享异常消息和详细信息。另外(正如我在开始时提到的),它必须是公共的,所以我不想让这个端点“在授权时”。最后,如果不需要编写自己的自定义端点就可以做到这一点,那就太好了


有可能吗?

在编写本文时(在Spring Boot 2.1及更早版本中),如果不编写自己的自定义端点,这是不可能的。我已经把它看作是对Spring Booor未来版本的一种改进。

< P>在Spring Bug 2中有一种方法可以实现这一点。
management:
  health:
    db:
      enabled: false
    diskspace:
      enabled: false
    mongo:
      enabled: false
    refresh:
      enabled: false

更多信息可在此处找到

您的意思是
management.endpoint.health.show details=when authorized
对您无效?这似乎是一个很好的设置用例:它将只向匿名访问者显示健康检查的摘要,并且只提供具有授权的请求的详细信息。这样配置对我也没有帮助。情况是,我需要有关无法授权的主管系统的子系统状态的信息。这就是为什么我需要关于公共端点上未经授权的子系统的信息。由于它是公开的,我不想分享它的实现细节(异常消息)。
授权时
应该在没有授权的情况下隐藏每个健康检查的细节,所以我不确定我是否关注您公开实现细节的问题。不管怎样,如果提供的端点不满足您的需要,听起来您需要编写自己的端点。@BartekN您好,我在下面添加了注释,请尝试这种方法。Thnx您是否尝试过禁用执行器的健康端点,然后通过创建返回端点的bean来创建自定义端点。在内部,bean代码将调用执行器的健康端点,获取数据,然后去掉不想显示的内容并显示其余内容。我认为您无法从执行器的端点拾取和选择数据