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

升级Spring Boot 3.4.4后actuator/health接口401访问拒绝排查

Spring Boot 3.4.4升级后Actuator Health接口401问题排查

问题描述

将Spring Boot应用升级至3.4.4版本后,其余REST接口运行正常,但actuator/health接口返回401访问拒绝。已尝试通过自定义SecurityFilterChain放行该端点,但问题未解决。

可能的原因及解决方法

1. 端点路径匹配错误(最可能)

你的自定义SecurityFilterChain中使用了securityMatcher("/nes/actuator/health"),但Spring Boot Actuator端点默认不继承应用的server.servlet.context-path:

  • 若未配置management.server.servlet.context-path,health接口的实际路径是/actuator/health,而非/nes/actuator/health
  • 请求会跳过第一个SecurityFilterChain(路径不匹配),进入第二个要求所有请求必须认证的FilterChain,导致401

解决方法:
修改第一个SecurityFilterChain的路径匹配规则:

@Bean
@Order(1)
public SecurityFilterChain actuatorEndpoints(HttpSecurity http) throws Exception {
    http
        .securityMatcher("/actuator/health") // 修改为实际路径
        .authorizeHttpRequests(auth -> auth.anyRequest().permitAll())
        .csrf(AbstractHttpConfigurer::disable);
    return http.build();
}

或者配置Actuator继承应用上下文路径,在application.yaml中添加:

management:
  server:
    servlet:
      context-path: ${nes.server.context-path:/nes}

2. Actuator自身安全配置优先级更高

Spring Boot Actuator自带安全自动配置(ManagementWebSecurityAutoConfiguration),其优先级可能高于自定义SecurityFilterChain,导致你的放行规则被覆盖。

解决方法:
在application.yaml中直接关闭Health端点的安全校验:

management:
  endpoint:
    health:
      security:
        enabled: false

3. SecurityFilterChain匹配顺序或规则问题

虽然你给第一个FilterChain设置了@Order(1),但需确保路径匹配规则正确:

  • 避免精确匹配遗漏斜杠后缀(如/actuator/health/),可改用通配符:securityMatcher("/actuator/health/**")
  • 也可显式使用AntPathRequestMatcher确保匹配准确:
.securityMatcher(new AntPathRequestMatcher("/actuator/health"))

4. 配置文件中重复的Security节点

你的application.yaml中存在两个顶级security节点,虽通常不会直接影响,但建议将AWS相关配置移入spring:节点下,避免配置解析异常:

spring:
  security:
    oauth2:
      resourceserver:
        jwt:
          issuer-uri: ${nes.security.oauth2.resourceserver.jwt.issuer-uri}
    aws:
      region: ${nes.security.aws.region}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 09:49:51