You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

gs-actuator-service样本Actuator端点信息增强及安全配置咨询

关于Spring Boot Actuator端点返回信息不足的解决方案

首先明确回答:这些端点确实可以返回更丰富的信息,默认的极简输出是Spring Boot出于安全考量的默认配置,只要做一些简单配置就能解锁更多内容,结合你已经添加的Security Starter,我们可以分步骤来配置:

1. 让actuator/info返回自定义信息

/actuator/info默认返回空对象{},是因为没有配置任何需要暴露的元数据。你只需要在配置文件(application.yml或application.properties)中添加以info.开头的属性即可:

示例(application.yml):

info:
  app:
    name: gs-actuator-service-demo
    version: 1.0.0
    description: 基于Spring Boot Actuator的示例服务
  build:
    artifact: ${project.artifactId} # 如果是Maven项目,可以直接引用pom变量
    version: ${project.version}

配置后,访问/actuator/info就会返回类似这样的结构:

{
  "app": {
    "name": "gs-actuator-service-demo",
    "version": "1.0.0",
    "description": "基于Spring Boot Actuator的示例服务"
  },
  "build": {
    "artifact": "gs-actuator-service",
    "version": "1.0.0"
  }
}

2. 让actuator/health返回详细健康指标

默认/actuator/health只返回{"status":"UP"},要让认证用户看到详细的健康检查细节(比如数据库、Redis、磁盘空间等组件的状态),需要配置健康端点的显示策略:

配置文件添加:

management:
  endpoint:
    health:
      show-details: when-authorized # 仅认证用户可见详细信息;也可设为always(无权限限制)或never(始终只显示状态)
  endpoints:
    web:
      exposure:
        include: health,info # 暴露需要的端点,*表示暴露所有端点(注意安全风险)

3. 结合Spring Security配置访问权限

既然你已经添加了spring-boot-starter-security,需要确保Actuator端点的访问权限配置正确,让认证用户能访问到这些端点并看到详细信息:

Spring Boot 3.x(使用SecurityFilterChain,推荐):

创建一个配置类,配置Actuator端点的安全规则:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
public class ActuatorSecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests(auth -> auth
                // 配置Actuator端点需要认证
                .requestMatchers("/actuator/**").authenticated()
                // 其他请求的权限规则,根据你的需求调整
                .anyRequest().permitAll()
            )
            // 启用表单登录(默认提供简单的登录页面)
            .formLogin(form -> form.permitAll())
            // 启用HTTP Basic认证(适合API调用)
            .httpBasic();

        return http.build();
    }
}

如果你需要更细粒度的权限(比如只有特定角色能访问Actuator):

可以修改规则为:

.requestMatchers("/actuator/**").hasRole("ADMIN")

同时确保你的用户拥有ADMIN角色。

验证配置

完成配置后,启动服务:

  1. 访问/actuator/info,应该能看到你配置的元数据
  2. 先未认证访问/actuator/health,只会看到状态;登录后访问,就能看到详细的健康检查信息

内容的提问来源于stack exchange,提问作者Ian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:44:39