Skip to content

Commit c8f87c1

Browse files
committed
Remove ignored and excluded headers
1 parent c609c65 commit c8f87c1

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

src/main/java/com/exceptionless/exceptionlessclient/plugins/preconfigured/RequestInfoPlugin.java

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,24 @@
1414
import java.net.URI;
1515
import java.net.UnknownHostException;
1616
import java.net.http.HttpRequest;
17+
import java.util.List;
1718
import java.util.Map;
1819
import java.util.Set;
1920
import java.util.stream.Collectors;
2021

2122
@Slf4j
2223
public class RequestInfoPlugin implements EventPluginIF {
2324
private static final Integer DEFAULT_PRIORITY = 70;
25+
private static final Set<String> IGNORED_HEADERS =
26+
Set.of(
27+
"Authorization",
28+
"Cookie",
29+
"Host",
30+
"Method",
31+
"Path",
32+
"Proxy-Authorization",
33+
"Referer",
34+
"User-Agent");
2435

2536
@Builder
2637
public RequestInfoPlugin() {}
@@ -71,7 +82,7 @@ private RequestInfo getRequestInfo(HttpRequest request, RequestInfoGetArgs args)
7182
.host(request.uri().getHost())
7283
.path(request.uri().getPath())
7384
.port(request.uri().getPort())
74-
.headers(request.headers().map());
85+
.headers(getHeaders(request, args));
7586

7687
if (args.isIncludeIpAddress()) {
7788
try {
@@ -95,6 +106,14 @@ private RequestInfo getRequestInfo(HttpRequest request, RequestInfoGetArgs args)
95106
return builder.build();
96107
}
97108

109+
private Map<String, List<String>> getHeaders(HttpRequest request, RequestInfoGetArgs args) {
110+
Map<String, List<String>> headers =
111+
filterExclusions(request.headers().map(), args.getExclusions());
112+
return headers.entrySet().stream()
113+
.filter(entry -> !IGNORED_HEADERS.contains(entry.getKey()))
114+
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
115+
}
116+
98117
private <X> Map<String, X> filterExclusions(Map<String, X> map, Set<String> exclusions) {
99118
return map.entrySet().stream()
100119
.filter(

src/test/java/com/exceptionless/exceptionlessclient/plugins/preconfigured/RequestInfoPluginTest.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,15 @@ public void itCanExcludeData() {
193193
.uri(
194194
URI.create(
195195
"https://localhost:5000/test-path?query-param-key=query-param-value&exclude-query-param=exclude-value"))
196-
.header("Cookie", "cookie1=value1;cookie2=value2;exclude-cookie=exclude-value")
196+
.headers(
197+
"Cookie",
198+
"cookie1=value1;cookie2=value2;exclude-cookie=exclude-value",
199+
"test-header",
200+
"test-value",
201+
"Authorization",
202+
"test-auth",
203+
"exclude-header",
204+
"exclude-value")
197205
.GET()
198206
.build();
199207

@@ -202,7 +210,7 @@ public void itCanExcludeData() {
202210
.event(Event.builder().build())
203211
.context(PluginContext.builder().request(httpRequest).build())
204212
.build();
205-
configuration.addDataExclusions("exclude-query-param", "exclude-cookie");
213+
configuration.addDataExclusions("exclude-query-param", "exclude-cookie", "exclude-header");
206214
PrivateInformationInclusions inclusions = configuration.getPrivateInformationInclusions();
207215
inclusions.setIpAddress(true);
208216
inclusions.setCookies(true);
@@ -217,5 +225,6 @@ public void itCanExcludeData() {
217225
.isEqualTo(Map.of("cookie1", "value1", "cookie2", "value2"));
218226
assertThat(requestInfo.getQueryString())
219227
.isEqualTo(Map.of("query-param-key", List.of("query-param-value")));
228+
assertThat(requestInfo.getHeaders()).isEqualTo(Map.of("test-header", List.of("test-value")));
220229
}
221230
}

0 commit comments

Comments
 (0)