Webアプリケーションでspring-cloud-sleuthを使用しています。残念ながら、私が呼び出した第三者は、X-B3-TraceIdヘッダーにUUIDを送信しています。しかし、春のTraceFilterは、文字列から16進数への変換時にUUIDの ' - '文字のためにエラーを発生させる可能性があります。だから私は自分自身のフィルタを書いて、TraceFilterの前にリクエストをインターセプトし、ヘッダからトレースIDを削除することにしました。これは私の設定です:春の起動時にフィルタの順序を変更する
@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
が自動的に登録されるので、TraceFilter
の順番を2
に変更するにはどうすればよいですか?ここで
なぜTraceFilterをFilterRegistrationBeanに登録して注文を設定しないのですか? – kuhajeyan