我希望我的handlerinterceptor,在我的spring引导应用程序中,不要在管理端口上的请求上运行。
management.port = 9091
我可以想出两种方法,但我正在寻找一种更标准的方法。
一种是从handlerinterceptor中检查端口:
@Override
public boolean preHandle(@NonNull HttpServletRequest request, @NonNull HttpServletResponse response, @NonNull Object handler) {
if(request.getLocalPort() == managementPort){
return true;
}
else{
....
}
}
第二种方法是在注册拦截器时排除与managementport相关的所有路径:
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(myInterceptor).excludePathPatterns(managementPortEndpoints);
}
这很容易失去同步。
有没有更本土化的方式来实现呢(某种Spring配置)
2条答案
按热度按时间fiei3ece1#
我选择
javax.servlet.Filter
用于筛选请求。sy5wg1nm2#
一旦对management.port的所有访问都是以/actuator开头的url请求,spring将不会对请求运行过滤器和拦截器。
所以,这似乎是解决问题的方法