我正在使用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
的请求。但是由于我的映射网址格式,这些应该隐藏了,不是吗?
旁注:我注意到当省略@ConditionalOnBean
时,它在受限路径下可以正常工作。可能与跟踪过滤器的初始化顺序有关。
答案 0 :(得分:0)
要根据您的要求拦截请求,您可以这样操作:
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/**");
}
}