in spectator-ext-ipc/src/main/java/com/netflix/spectator/ipc/http/PathSanitizer.java [71:98]
private static String sanitizeSegments(String path, Set<String> allowed) {
StringBuilder builder = new StringBuilder();
int length = path.length();
int pos = path.isEmpty() || path.charAt(0) != '/' ? 0 : 1;
int segmentsAdded = 0;
while (pos < length && segmentsAdded < 5) {
String segment;
int e = path.indexOf('/', pos);
if (e > 0) {
segment = path.substring(pos, e);
pos = e + 1;
} else {
segment = path.substring(pos);
pos = length;
}
if (!segment.isEmpty()) {
if (shouldSuppressSegment(segment, allowed))
appendIfSpaceAvailable(builder, "-");
else
appendIfSpaceAvailable(builder, segment);
++segmentsAdded;
}
}
return builder.toString();
}