我正在将项目从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 端点时看不到它们。
有什么建议吗?
答案 0 :(得分:2)
通过添加以下内容解决了该问题:
management.endpoint.health.show-details=when_authorized
如@ValentinCarnu所建议。
默认值为从不。当用户担任端点的一个或多个角色时,该用户被视为已授权。如果端点没有配置的角色(默认值),则所有通过身份验证的用户均被视为已授权。可以使用management.endpoint.health.roles属性配置角色。
谢谢!
答案 1 :(得分:0)
不要使用这个URL http://localhost:8080/env 而是使用 http://localhost:8080/actuator/env
并使用以下内容设置 Application.properties
management.security.enabled=false management.endpoints.web.exposure.include=*
为我工作