diff --git a/lib/logger/err-serializer.js b/lib/logger/err-serializer.js index 79b425ab44f87d1aebab3eb2f333296c47e7874e..011c2a4fc07866f4ac478cede7e19a6fb63b6996 100644 --- a/lib/logger/err-serializer.js +++ b/lib/logger/err-serializer.js @@ -15,17 +15,25 @@ export default function errSerializer(err) { if (err.stack) { response.stack = err.stack; } - if (err.gotOptions && err.gotOptions.headers) { - const redactedHeaders = [ - 'authorization', - 'private-header', - 'Private-header', - ]; - redactedHeaders.forEach(header => { - if (response.gotOptions.headers[header]) { - response.gotOptions.headers[header] = '** redacted **'; - } - }); + if (response.gotOptions) { + if (is.string(response.gotOptions.auth)) { + response.gotOptions.auth = response.gotOptions.auth.replace( + /:.*/, + ':***********' + ); + } + if (err.gotOptions.headers) { + const redactedHeaders = [ + 'authorization', + 'private-header', + 'Private-header', + ]; + redactedHeaders.forEach(header => { + if (response.gotOptions.headers[header]) { + response.gotOptions.headers[header] = '** redacted **'; + } + }); + } } const redactedFields = ['message', 'stack', 'stdout', 'stderr']; for (const field of redactedFields) { diff --git a/test/logger/__snapshots__/err-serializer.spec.js.snap b/test/logger/__snapshots__/err-serializer.spec.js.snap index 77a6591a1af4c6520ff926188218eda723c51e47..fc37540fc113757fefb262a50a11b1c5a18c4141 100644 --- a/test/logger/__snapshots__/err-serializer.spec.js.snap +++ b/test/logger/__snapshots__/err-serializer.spec.js.snap @@ -6,6 +6,7 @@ Object { "b": 2, "body": "some response body", "gotOptions": Object { + "auth": "test:***********", "headers": Object { "authorization": "** redacted **", }, diff --git a/test/logger/err-serializer.spec.js b/test/logger/err-serializer.spec.js index e74c8b5f9b7ee25139083bd736ed3f5d362b56dc..429c858867c2fa08f2c039f40a88ebb1363c62d8 100644 --- a/test/logger/err-serializer.spec.js +++ b/test/logger/err-serializer.spec.js @@ -13,6 +13,7 @@ describe('logger/err-serializer', () => { headers: { authorization: 'Bearer abc', }, + auth: 'test:token', }, }; expect(configSerializer(err)).toMatchSnapshot();