Skip to content

Commit dfa0bda

Browse files
committed
Redact authorization header from debug logging outputs
1 parent f52bb6b commit dfa0bda

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

slack-api-client/src/main/java/com/slack/api/util/http/listener/DetailedLoggingListener.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,17 @@
11
package com.slack.api.util.http.listener;
22

33
import lombok.extern.slf4j.Slf4j;
4+
import okhttp3.Headers;
45
import okhttp3.RequestBody;
56
import okhttp3.Response;
67
import okio.Buffer;
78

89
import java.io.IOException;
10+
import java.util.ArrayList;
11+
import java.util.List;
12+
import java.util.Locale;
13+
14+
import static java.util.stream.Collectors.joining;
915

1016
/**
1117
* An HTTP response listener that prints the details of request/response mainly for debugging purposes.
@@ -43,6 +49,18 @@ public void accept(State state) {
4349
log.error("Failed to read the content length because {}", e.getMessage(), e);
4450
}
4551

52+
Headers originalRequestHeaders = response.request().headers();
53+
List<String> requestHeaders = new ArrayList<>();
54+
for (String headerName : originalRequestHeaders.names()) {
55+
if (headerName.toLowerCase(Locale.ENGLISH).equals("authorization")
56+
&& !state.getConfig().isLibraryMaintainerMode()) {
57+
requestHeaders.add(headerName + ": (redacted)");
58+
} else {
59+
requestHeaders.add(headerName + ": " + originalRequestHeaders.get(headerName));
60+
}
61+
}
62+
String requestHeaderLines = requestHeaders.stream().collect(joining("\n")) + "\n";
63+
4664
log.debug("\n[Request URL]\n{} {}\n" +
4765
"[Specified Request Headers]\n{}" +
4866
"[Request Body]\n{}\n\n" +
@@ -54,7 +72,7 @@ public void accept(State state) {
5472
"[Response Body]\n{}\n",
5573
response.request().method(),
5674
response.request().url(),
57-
response.request().headers(),
75+
requestHeaderLines,
5876
textRequestBody,
5977
requestBodyObj != null ? requestBodyObj.contentType() : null,
6078
contentLength,

0 commit comments

Comments
 (0)