首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

执行器不公开Spring Boot v2.4.3中的端点

执行器(Actuator)是Spring Boot框架中的一个重要组件,用于监控和管理应用程序的运行时状态。它提供了一组RESTful端点,可以通过HTTP请求来获取应用程序的各种信息,包括健康状况、指标统计、配置信息等。

在Spring Boot v2.4.3中,执行器的端点默认是不公开的,这是为了保护应用程序的安全性。只有经过授权的用户才能访问这些端点。这样可以防止未经授权的用户获取敏感信息或对应用程序进行恶意操作。

要公开执行器的端点,可以通过配置文件或代码进行设置。以下是一些常用的方法:

  1. 通过配置文件设置: 在application.properties或application.yml文件中添加以下配置,可以公开所有的执行器端点:
代码语言:txt
复制
management.endpoints.web.exposure.include=*

如果只想公开特定的端点,可以使用以下配置:

代码语言:txt
复制
management.endpoints.web.exposure.include=health,info
  1. 通过代码设置: 在Spring Boot的配置类中,使用@Endpoint注解来定义一个自定义的端点,然后使用@WebEndpoint注解将其暴露为HTTP端点。例如:
代码语言:txt
复制
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.boot.actuate.endpoint.web.annotation.WebEndpoint;

@Endpoint(id = "custom")
public class CustomEndpoint {

    @ReadOperation
    public String getInfo() {
        return "This is a custom endpoint";
    }
}

然后,在配置类中使用@EnableWebEndpoint注解来启用执行器的Web端点:

代码语言:txt
复制
import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration;
import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.boot.actuate.endpoint.web.annotation.WebEndpoint;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
@ConditionalOnWebApplication
@AutoConfigureAfter({ WebMvcEndpointManagementContextConfiguration.class, WebEndpointAutoConfiguration.class })
public class CustomEndpointConfiguration {

    @Bean
    public CustomEndpoint customEndpoint() {
        return new CustomEndpoint();
    }
}

这样就可以通过HTTP请求访问自定义的端点了。

执行器在云计算中的应用非常广泛,它可以帮助开发人员和运维人员更好地监控和管理应用程序。以下是一些执行器的应用场景:

  1. 健康检查:执行器可以提供应用程序的健康状况信息,包括内存使用情况、线程池状态、数据库连接状态等。通过监控这些信息,可以及时发现并解决应用程序的健康问题。
  2. 指标统计:执行器可以提供应用程序的各种指标统计信息,如请求处理时间、请求成功率、并发请求数等。通过分析这些指标,可以了解应用程序的性能状况,并进行优化。
  3. 配置管理:执行器可以提供应用程序的配置信息,包括数据库连接配置、缓存配置、日志配置等。通过动态修改这些配置,可以实现应用程序的灵活性和可配置性。
  4. 日志管理:执行器可以提供应用程序的日志信息,包括错误日志、警告日志、调试日志等。通过监控这些日志,可以及时发现并解决应用程序的问题。

腾讯云提供了一系列与执行器相关的产品和服务,包括:

  1. 云监控(Cloud Monitor):提供全方位的监控能力,包括主机监控、应用监控、网络监控等。可以通过云监控来监控执行器的各种指标和状态。
  2. 云审计(Cloud Audit):提供全面的日志审计能力,可以记录执行器的操作日志和访问日志,帮助用户追踪和分析执行器的使用情况。
  3. 云安全中心(Cloud Security Center):提供全面的安全管理能力,包括漏洞扫描、风险评估、安全合规等。可以通过云安全中心来保护执行器的安全性。

以上是关于执行器不公开Spring Boot v2.4.3中的端点的完善且全面的答案。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何将 Spring Boot Actuator 的指标信息输出到 InfluxDB 和 Prometheus

Spring Boot Actuator是Spring Boot 2发布后修改最多的项目之一。它经过了主要的改进,旨在简化定制,并包括一些新功能,如支持其他Web技术,例如新的反应模块 - SpringWebFlux。它还为 InfluxDB添加了开箱即用的支持,这是一个开源时间序列数据库,旨在处理大量带时间戳的数据。与 SpringBoot1.5使用的版本相比,它实际上是一个很大的简化。您可以通过阅读我之前的一篇文章使用Grafana和InfluxDB自定义指标可视化来了解自己有多少。我在那里描述了如何使用 @ExportMetricsWriter bean将[Spring Boot Actuator生成的指标导出到InfluxDB。示例Spring Boot应用程序已在分支主文件中的GitHub存储库sample-spring-graphite上提供该文章。对于本文,我创建了分支spring2,它展示了如何实现与使用Spring Boot 2.0版本之前相同的功能。弹簧启动执行器。

03

CVE-2021-21234 Spring Boot 目录遍历

spring-boot-actuator-logview 在一个库中添加了一个简单的日志文件查看器作为 spring boot 执行器端点。它是 maven 包“eu.hinsch:spring-boot-actuator-logview”。在 0.2.13 版本之前的 spring-boot-actuator-logview 中存在目录遍历漏洞。该库的本质是通过 admin(spring boot 执行器)HTTP 端点公开日志文件目录。要查看的文件名和基本文件夹(相对于日志文件夹根)都可以通过请求参数指定。虽然检查了文件名参数以防止目录遍历攻击(因此`filename=../somefile` 将不起作用),但没有充分检查基本文件夹参数,因此`filename=somefile&base=../` 可以访问日志记录基目录之外的文件)。该漏洞已在 0.2.13 版中修补。0.2.12 的任何用户都应该能够毫无问题地进行更新,因为该版本中没有其他更改。除了更新或删除依赖项之外,没有解决此漏洞的方法。但是,删除运行应用程序的用户对运行应用程序不需要的任何目录的读取访问权限可以限制影响。此外,可以通过在反向代理后面部署应用程序来限制对 logview 端点的访问。

03
领券