Skip to content

Commit ee00951

Browse files
committed
Option to try to preserve the case of the headers.
Issue #67
1 parent cd8125c commit ee00951

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

‎index.js‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,22 @@ app.all('*', (req, res) => {
6969
}
7070
};
7171

72+
if(process.env.PRESERVE_HEADER_CASE){
73+
let newHeaders = {...req.headers};
74+
75+
// req.headers is in lowercase, processed, deduplicated. req.rawHeaders is not.
76+
// Match on the preserved case of the header name, populate newHeaders with preserved case and processed value.
77+
for (let i = 0; i < req.rawHeaders.length; i += 2) {
78+
let preservedHeaderName = req.rawHeaders[i];
79+
if (preservedHeaderName == preservedHeaderName.toLowerCase()) { continue; }
80+
81+
newHeaders[preservedHeaderName] = req.header(preservedHeaderName);
82+
delete newHeaders[preservedHeaderName.toLowerCase()];
83+
}
84+
echo.headers = newHeaders;
85+
}
86+
87+
7288
//Add client certificate details to the output, if present
7389
//This only works if `requestCert` is true when starting the server.
7490
if(req.socket.getPeerCertificate){

0 commit comments

Comments
 (0)