Java 使用身份验证时,Spring Boot 2执行器/健康端点未显示其他信息

Java 使用身份验证时,Spring Boot 2执行器/健康端点未显示其他信息,java,spring-boot,spring-boot-actuator,health-monitoring,Java,Spring Boot,Spring Boot Actuator,Health Monitoring,我正在将一个项目从SpringBoot1.X迁移到SpringBoot2.X。唯一剩下的给我带来麻烦的就是弹簧靴执行器 在Spring Boot 1.X中,当您使用凭据点击/health端点时,通常会收到更详细的指标列表,例如默认的org.springframework.Boot.actuate.health.diskspace healthdicator的结果 { “状态”:“向上”, “磁盘空间”:{ “状态”:“向上”, “总计”:1000240963584, “免费”:90916259

我正在将一个项目从SpringBoot1.X迁移到SpringBoot2.X。唯一剩下的给我带来麻烦的就是弹簧靴执行器

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


{
“状态”:“向上”,
“磁盘空间”:{
“状态”:“向上”,
“总计”:1000240963584,
“免费”:909162590208,
“门槛”:10485760
}
}

我还会在这里看到自定义的健康指标

现在我使用了较新版本的致动器库,我不再收到额外的信息(在提供凭证时)。我所看到的是:


{
“状态”:“向上”
}

起初我认为可能我没有正确设置凭据,但是通过故意提供无效凭据,我得到了401个未经授权的证书。所以这不可能是身份验证

我对调试器进行了更深入的研究,发现实际上创建了DiskSpaceHealthIndicatorbean,以及所有其他自定义指标。但似乎它们没有通过Spring Boot注册,因为我在点击/health端点时看不到它们


有什么建议吗?

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


management.endpoint.health.show details=授权时

正如@Valentinu所建议的那样

这就是我后来在文档中发现的:

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


谢谢

尝试添加此属性
management.endpoint.health.show details=always
Ok,这有助于显示所有指示符,但这会放弃所有身份验证的需要—这是我不想做的。
management.endpoint.health.show details=when_authorized
这可能是您需要的,这很有效。谢谢