11package com .slack .api .util .http .listener ;
22
33import lombok .extern .slf4j .Slf4j ;
4+ import okhttp3 .Headers ;
45import okhttp3 .RequestBody ;
56import okhttp3 .Response ;
67import okio .Buffer ;
78
89import 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