From b5861dae398fd21fddc7a3acb593f2283293a260 Mon Sep 17 00:00:00 2001 From: Jonathan Perlman Date: Tue, 15 Apr 2025 14:31:08 -0400 Subject: [PATCH] Fix Digest auth header field key value extraction --- packages/bruno-requests/src/auth/digestauth-helper.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/bruno-requests/src/auth/digestauth-helper.js b/packages/bruno-requests/src/auth/digestauth-helper.js index 25911a6b3..186281a6e 100644 --- a/packages/bruno-requests/src/auth/digestauth-helper.js +++ b/packages/bruno-requests/src/auth/digestauth-helper.js @@ -9,6 +9,13 @@ function stripQuotes(str) { return str.replace(/"/g, ''); } +function splitAuthHeaderKeyValue(str) { + const indexOfEqual = str.indexOf('='); + const key = str.substring(0, indexOfEqual).trim(); + const value = str.substring(indexOfEqual + 1); + return [key, value]; +} + function containsDigestHeader(response) { const authHeader = response?.headers?.['www-authenticate']; return authHeader ? authHeader.trim().toLowerCase().startsWith('digest') : false; @@ -55,7 +62,7 @@ export function addDigestInterceptor(axiosInstance, request) { const authDetails = error.response.headers['www-authenticate'] .split(',') - .map((pair) => pair.split('=').map((item) => item.trim()).map(stripQuotes)) + .map((pair) => splitAuthHeaderKeyValue(pair).map((item) => item.trim()).map(stripQuotes)) .reduce((acc, [key, value]) => { const normalizedKey = key.toLowerCase().replace('digest ', ''); if (normalizedKey && value !== undefined) {