使用身份验证时,Spring Boot 2 Actuator / health端点未显示其他信息

时间:2018-12-28 13:49:32

标签: java spring-boot spring-boot-actuator health-monitoring

我正在将项目从Spring Boot 1.X迁移到Spring Boot2.X。剩下的唯一给我麻烦的是Spring Boot Actuator。

在Spring Boot 1.X中,当您使用凭据点击 / health 端点时,通常会收到更详细的指标列表,例如默认 org的结果。 springframework.boot.actuate.health.DiskSpaceHealthIndicator

{ "status": "UP", "diskSpace": { "status": "UP", "total": 1000240963584, "free": 909162590208, "threshold": 10485760 } }

我还将在此处看到自定义的健康指标。

现在,我使用较新版本的Actuator库,因此(提供凭据时)不再收到该附加信息。我所看到的是:

{ "status": "UP" }

起初我以为我可能没有正确设置凭据,但是通过故意提供无效的凭据,我得到了 401 Unauthorized 。因此它不能是身份验证。

我对调试器进行了更深入的研究,发现实际上已创建了 DiskSpaceHealthIndicator Bean,以及所有其他自定义定义的指示器。但是似乎它们没有被Spring Boot注册,对我来说,在碰到 / health 端点时看不到它们。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

通过添加以下内容解决了该问题:

management.endpoint.health.show-details=when_authorized

如@ValentinCarnu所建议。

这是我随后在文档中发现的:https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html#production-ready-health

  

默认值为从不。当用户担任端点的一个或多个角色时,该用户被视为已授权。如果端点没有配置的角色(默认值),则所有通过身份验证的用户均被视为已授权。可以使用management.endpoint.health.roles属性配置角色。

谢谢!

答案 1 :(得分:0)

不要使用这个URL http://localhost:8080/env 而是使用 http://localhost:8080/actuator/env

并使用以下内容设置 Application.properties

ma​​nagement.security.enabled=false ma​​nagement.endpoints.web.exposure.include=*

为我工作