From 7ce35e51dc521763b5e8e170dfcc1c54e005ecbe Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Wed, 11 Oct 2017 16:37:41 +0800 Subject: [PATCH 1/2] Updates to latest zipkin deps --- spring-cloud-sleuth-dependencies/pom.xml | 4 ++-- spring-cloud-sleuth-samples/pom.xml | 4 ++-- .../spring-cloud-sleuth-sample-zipkin/pom.xml | 2 +- spring-cloud-sleuth-zipkin/pom.xml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/spring-cloud-sleuth-dependencies/pom.xml b/spring-cloud-sleuth-dependencies/pom.xml index ffb8d5ea2..f427e69e2 100644 --- a/spring-cloud-sleuth-dependencies/pom.xml +++ b/spring-cloud-sleuth-dependencies/pom.xml @@ -14,8 +14,8 @@ spring-cloud-sleuth-dependencies Spring Cloud Sleuth Dependencies - 1.28.0 - 1.0.0 + 2.2.0 + 1.1.1 diff --git a/spring-cloud-sleuth-samples/pom.xml b/spring-cloud-sleuth-samples/pom.xml index ff82091d2..9cd842a09 100644 --- a/spring-cloud-sleuth-samples/pom.xml +++ b/spring-cloud-sleuth-samples/pom.xml @@ -59,12 +59,12 @@ io.zipkin.java zipkin - 1.28.0 + 2.2.0 io.zipkin.java zipkin-server - 1.28.0 + 2.2.0 diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml index 74f356748..958ed1140 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-zipkin/pom.xml @@ -111,7 +111,7 @@ com.squareup.okhttp3 okhttp - 3.6.0 + 3.9.0 test diff --git a/spring-cloud-sleuth-zipkin/pom.xml b/spring-cloud-sleuth-zipkin/pom.xml index bce6a1356..177b5b48e 100644 --- a/spring-cloud-sleuth-zipkin/pom.xml +++ b/spring-cloud-sleuth-zipkin/pom.xml @@ -92,7 +92,7 @@ com.squareup.okhttp3 okhttp - 3.6.0 + 3.9.0 test From d7cebccf0c0a6d219aee270b0afa2f49025d99ac Mon Sep 17 00:00:00 2001 From: Robert Hafner Date: Mon, 16 Oct 2017 02:05:16 -0400 Subject: [PATCH 2/2] Non-ASCII characters included in X-SPAN-NAME header. (#735) --- .../AbstractTraceHttpRequestInterceptor.java | 4 +++- .../TraceRestTemplateInterceptorTests.java | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/AbstractTraceHttpRequestInterceptor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/AbstractTraceHttpRequestInterceptor.java index b1f17fcc7..57b267ac4 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/AbstractTraceHttpRequestInterceptor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/AbstractTraceHttpRequestInterceptor.java @@ -66,7 +66,9 @@ abstract class AbstractTraceHttpRequestInterceptor { } private String getName(URI uri) { - return SpanNameUtil.shorten(uriScheme(uri) + ":" + uri.getPath()); + // The returned name should comply with RFC 882 - Section 3.1.2. + // i.e Header values must composed of printable ASCII values. + return SpanNameUtil.shorten(uriScheme(uri) + ":" + uri.getRawPath()); } private String uriScheme(URI uri) { diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptorTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptorTests.java index 9a892246d..f207ebec5 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptorTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptorTests.java @@ -22,6 +22,7 @@ import java.util.List; import java.util.Map; import java.util.Random; +import org.apache.commons.lang.StringUtils; import org.junit.After; import org.junit.Assert; import org.junit.Before; @@ -156,6 +157,23 @@ public class TraceRestTemplateInterceptorTests { then(this.testController.span).hasNameEqualTo("http:/"); } + @Test + public void createdSpanNameHasOnlyPrintableAsciiCharactersForNonEncodedURIWithNonAsciiChars() { + this.tracer.continueSpan(Span.builder().traceId(1L).spanId(2L).exportable(false).build()); + + try { + this.template.getForEntity("/cas~fs~划", Map.class).getBody(); + } + catch (Exception e) { + + } + + String spanName = this.spanAccumulator.getSpans().get(0).getName(); + then(this.spanAccumulator.getSpans().get(0).getName()).isEqualTo("http:/cas~fs~%C3%A5%CB%86%E2%80%99"); + then(StringUtils.isAsciiPrintable(spanName)); + then(ExceptionUtils.getLastException()).isNull(); + } + @Test public void willShortenTheNameOfTheSpan() { this.tracer.continueSpan(Span.builder().traceId(1L).spanId(2L).exportable(false).build());