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

配置Spring Security Basic Auth后如何通过Actuator及Spring Boot Admin修改日志级别

解决方案

根因说明

你遇到的403错误有两个核心触发场景:

  • 直接用curl调用actuator接口时,没有携带HTTP Basic认证的账号凭证,被安全拦截规则拦截
  • 你的Actuator安全规则没有明确适配POST类型的日志级别修改请求,存在优先级冲突风险

具体配置调整步骤

1. 修正curl测试请求

在curl命令中增加-u参数携带认证账号密码,即可正常调用,示例如下:

curl -X "POST"  "http://localhost:9010/actuator/loggers/com.netflix" -H "Content-Type: application/json; charset=utf-8" -u admin:pass -d '{"configuredLevel": "ERROR"}'

如果该请求返回204无内容响应,说明基础认证逻辑运行正常。

2. 调整Actuator安全配置

修改ActuatorSecurityConfiguration类的configure方法,明确适配日志修改的POST请求,同时避免CSRF拦截和优先级冲突:

import org.springframework.http.HttpMethod;

@EnableWebSecurity
public class SecurityConfiguration  {

    @Configuration
    @Order(1) 
    public static class ActuatorSecurityConfiguration extends WebSecurityConfigurerAdapter {

        @Override   
        protected void configure(HttpSecurity http) throws Exception {
            http
                .antMatcher("/actuator/**")
                .authorizeRequests()
                // 明确允许已认证用户发送POST请求修改日志级别
                .antMatchers(HttpMethod.POST, "/actuator/loggers/**").authenticated()
                .antMatchers("/actuator/**").authenticated()
                .and()
                .httpBasic()
                .and()
                // 直接在Actuator规则层关闭CSRF,避免和主配置冲突
                .csrf().disable();
         }
        
    }
    // 其余原有配置保持不变
}

3. 确认Spring Boot Admin配置有效性

你当前的application.yml配置已经正确填写了spring.boot.admin.client.instance.metadata.user的账号密码,该配置会自动将认证信息传递给Spring Boot Admin服务端,服务端调用你应用的actuator接口时会自动携带对应的HTTP Basic认证头,无需额外修改服务端配置。
只需要确保你配置的metadata.user.name和metadata.user.password和spring.security.user的账号密码完全一致即可。

验证流程

  1. 调整配置后重启业务应用
  2. 先用上文提供的带认证参数的curl命令测试,确认可以正常修改日志级别
  3. 登录Spring Boot Admin页面操作修改日志级别,确认操作成功无报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:06:01