3

我正在开发一个 Spring Boot 项目,其中执行器健康配置在端口 8090 上,而应用程序在 8080 上。

我想拦截传入的执行器健康请求以对其进行自定义。

尝试添加如下拦截器:

public class ActuatorConfig extends WebMvcEndpointManagementContextConfiguration {
     @Override
     public WebMvcEndpointHandlerMapping webMvcEndpointHandlerMapping(.....) {
         WebMvcEndpointHandlerMapping mapping = super.webMvcEndpointHandlerMapping(...);
         mapping.setInterceptors(myActuatorInterceptor());  
     }

     @Bean
     public MyActuatorInterceptor myActuatorInterceptor(){
      return new MyActuatorInterceptor(); 
     }
}

public class MyActuatorInterceptor extends HandlerInterceptor {
     @Override
     public boolean preHandle(...) {
         //my customization code
     }
}

当我奇怪地添加上述拦截器时,'/actuator/health' 请求在端口 8090 上返回 '404 not found',即使它存在于端口 8080 上工作正常的地方。

当我禁用拦截器代码 '/actuator/health' 请求在 8090 上正常工作。

问题:当'/actuator/health'请求运行在不同的端口时,如何拦截它?

4

0 回答 0