在 Spring Boot 1.5 中,健康端点无法通过 HTTPS 工作

Posted

技术标签:

【中文标题】在 Spring Boot 1.5 中,健康端点无法通过 HTTPS 工作【英文标题】:Health endpoint not working over HTTPS in Spring Boot 1.5 【发布时间】:2017-08-11 21:01:13 【问题描述】:

我最近将我的应用程序中的 Spring Boot 版本从 1.4 更新到 1.5.1,我注意到在 AWS 上部署到 Elastic Beanstalk 后,健康检查开始失败。

在我们的 AWS 环境中,所有通信都是通过 HTTPS 进行的,包括运行状况,它过去可以在 Spring Boot 和 Actuator 1.4 中正常工作,但我们在 1.5 版本中开始在执行器运行状况端点上获得 401。

有人有同样的问题吗?不确定此版本中与此主题相关的更改,但我没有通过阅读发行说明找到任何解决方案。很高兴得到任何帮助。

【问题讨论】:

【参考方案1】:

与 https 无关。

由于 1.5.1 健康点默认情况下是安全的,这就是您获得 401 的原因。

在发行说明中:

https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-1.5-Release-Notes

“执行器“敏感”端点现在默认是安全的(即使不依赖于“Spring Security”)。如果您现有的 Spring Boot 1.4 应用程序使用 Spring Security(并且没有任何自定义安全配置)事情应该像以前一样工作。如果您现有的 Spring Boot 1.4 应用程序具有自定义安全配置,并且您希望对敏感端点具有开放访问权限,则需要在安全配置中显式配置它。如果您正在升级Spring Boot 1.4 应用程序不依赖于 Spring Security,并且您希望保留对敏感端点的开放访问,您需要将 management.security.enabled 设置为 false。有关更多详细信息,请参阅更新的参考文档。"

【讨论】:

以上是关于在 Spring Boot 1.5 中,健康端点无法通过 HTTPS 工作的主要内容,如果未能解决你的问题,请参考以下文章

将 spring boot 执行器健康端点更改为自定义端点

动态添加和删除 Spring Boot 健康检查

关于spring-boot-actuator的httptrace端点不生效问题解决办法

如何覆盖 Spring Boot 健康响应代码

带有 Consul 的 Spring Boot 执行器

从 Spring Boot 1.5 升级时为 Spring Boot 2.0 acuator 框架配置安全性