我在我的web应用程序中使用spring-cloud-sleuth。我接到的第三方不幸的是在X-B3-TraceId标题中发送UUID。但是,在将字符串转换为十六进制时,由于UUID中的' - '字符,Spring中的TraceFilter可能会侦测到错误。所以我决定编写我自己的过滤器,它将在TraceFilter之前拦截请求,并从头中删除跟踪标识。这是我的配置:更改弹簧启动过滤器的顺序
@Bean
public FilterRegistrationBean getZipkinFilterRegistrationBean() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new ZipkinHeaderReplaceFilter());
bean.setOrder(1);
bean.addUrlPatterns("/");
return bean;
}
这是由弹簧云侦探的TraceFilter:
@Order(TraceFilter.ORDER)
public class TraceFilter extends GenericFilterBean {
protected static final int ORDER = Ordered.HIGHEST_PRECEDENCE + 5;
.........
}
所以跟踪滤波器的阶正是-2147483643
,我认为这使得之前出现在我的过滤。我不想改变我的过滤器的顺序。如何将TraceFilter
的订单更改为2
,因为弹簧引导自动配置会自动注册TraceFilter
?
为什么不向FilterRegistrationBean注册TraceFilter并设置顺序? – kuhajeyan