Spring Boot V2.0.0.M7中Actuator auditevents端点无法工作求助
解决Spring Boot Actuator 2.0.0.M7中/auditevents端点无法访问的问题
这个问题在Actuator早期里程碑版本里属于常见场景,我帮你梳理几个核心原因和对应的解决办法:
1. 缺少AuditEventRepository Bean
/auditevents端点的正常运行依赖于Spring的AuditEventRepository接口实现类。在Spring Boot 2.0.0.M7这个里程碑版本中,默认不会自动配置这个Bean——也就是说,哪怕你设置了management.endpoints.web.expose=*,只要没有这个关键依赖,端点会被自动禁用。
解决起来很简单,在你的配置类中手动添加一个内存实现的AuditEventRepository Bean即可:
import org.springframework.boot.actuate.audit.InMemoryAuditEventRepository; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class ActuatorConfig { @Bean public InMemoryAuditEventRepository auditEventRepository() { return new InMemoryAuditEventRepository(); } }
添加完成后重启应用,/actuator/auditevents应该就能正常访问了。
2. Spring Security拦截了端点请求
如果你的项目引入了Spring Security,即使已经暴露了所有Actuator端点,默认的安全规则也可能拦截/auditevents的请求。你可以在Security配置类中添加放行规则:
import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; public class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .antMatchers("/actuator/**").permitAll() // 可根据实际需求调整权限 .anyRequest().authenticated(); } }
3. 里程碑版本的已知bug
2.0.0.M7是较早的里程碑版本,可能存在一些未修复的问题。如果上面两种方法都无效,建议升级到后续的里程碑版本或正式版(比如2.0.0.RELEASE),正式版的稳定性会大幅提升,很多早期的端点问题都已被修复。
内容的提问来源于stack exchange,提问作者Subin Chalil
相关产品推荐
相关产品推荐

