-
Unresolved directive in spring-cloud-sleuth.adoc - include::../../..//spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterIntegrationTests.java[tags=response_headers,indent=0]
+
@Component
+@Order(TraceWebServletAutoConfiguration.TRACING_FILTER_ORDER + 1)
+class MyFilter extends GenericFilterBean {
+
+ private final Tracer tracer;
+
+ MyFilter(Tracer tracer) {
+ this.tracer = tracer;
+ }
+
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response,
+ FilterChain chain) throws IOException, ServletException {
+ Span currentSpan = this.tracer.currentSpan();
+ if (currentSpan == null) {
+ chain.doFilter(request, response);
+ return;
+ }
+ // for readability we're returning trace id in a hex form
+ ((HttpServletResponse) response).addHeader("ZIPKIN-TRACE-ID",
+ currentSpan.context().traceIdString());
+ // we can also add some custom tags
+ currentSpan.tag("custom", "tag");
+ chain.doFilter(request, response);
+ }
+
+}