Как ограничить путь HttpTraceFilter?
Я использую spring-actuator
и хотите ограничить путь для регистрации запросов / ответов трассировки. Пробовал следующим образом, но все пути, которые вы вызывали, регистрируются в http://localhost:8080/actuator/httptrace
:
@Bean
@ConditionalOnBean(HttpTraceFilter.class)
public FilterRegistrationBean traceFilterRegistration(HttpTraceFilter filter) {
FilterRegistrationBean registration = new FilterRegistrationBean(filter);
registration.setUrlPatterns("/test/*"));
return registration;
}
В конечной точке httptrace я все еще вижу запрос к http://localhost:8080/actuator/mappings
или же http://localhost:8080/favicon.ico
, Но они должны быть скрыты из-за моего шаблона отображения карт, не так ли?
Sidenote: Я заметил, что при выходе из @ConditionalOnBean
это работает как ожидалось с ограниченным путем. Вероятно, это связано с порядком инициализации фильтра трассировки...
1 ответ
Чтобы перехватить запрос согласно вашему требованию, вы можете сделать это следующим образом:
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class CustomInterceptor implements HandlerInterceptor{
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){
//your custom logic here.
return true;
}
}
Затем зарегистрируйтесь здесь, чтобы перехватить нужный вам путь:
@Configuration
@EnableWebMvc
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(new
CustomInterceptor()).addPathPatterns("/actuator/**","/test/**");
}
}