Prevent headers to be mutated

This commit rework 1189ccc to prevent a mutate call on the original
headers map.

Closes gh-13871
This commit is contained in:
Stephane Nicoll
2018-07-24 13:34:49 +02:00
parent 26cab9aa83
commit 829ac3fbef

View File

@@ -25,6 +25,7 @@ import java.util.Set;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.function.Supplier;
import java.util.stream.Collectors;
import org.springframework.http.HttpHeaders;
@@ -101,9 +102,9 @@ public class HttpExchangeTracer {
if (!this.includes.contains(include)) {
return new LinkedHashMap<>();
}
Map<String, List<String>> headers = headersSupplier.get();
headers.keySet().removeIf((header) -> !headerPredicate.test(header));
return headers;
return headersSupplier.get().entrySet().stream()
.filter((entry) -> headerPredicate.test(entry.getKey()))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}
private final class FilteredTraceableRequest implements TraceableRequest {