Skip to content

Commit

Permalink
Option to try to preserve the case of the headers.
Browse files Browse the repository at this point in the history
Issue #67
  • Loading branch information
mendhak committed Aug 11, 2024
1 parent cd8125c commit ee00951
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,22 @@ app.all('*', (req, res) => {
}
};

if(process.env.PRESERVE_HEADER_CASE){
let newHeaders = {...req.headers};

// req.headers is in lowercase, processed, deduplicated. req.rawHeaders is not.
// Match on the preserved case of the header name, populate newHeaders with preserved case and processed value.
for (let i = 0; i < req.rawHeaders.length; i += 2) {
let preservedHeaderName = req.rawHeaders[i];
if (preservedHeaderName == preservedHeaderName.toLowerCase()) { continue; }

newHeaders[preservedHeaderName] = req.header(preservedHeaderName);
delete newHeaders[preservedHeaderName.toLowerCase()];
}
echo.headers = newHeaders;
}


//Add client certificate details to the output, if present
//This only works if `requestCert` is true when starting the server.
if(req.socket.getPeerCertificate){
Expand Down

0 comments on commit ee00951

Please sign in to comment.