我正在开发一个 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'请求运行在不同的端口时,如何拦截它?