* add eslint config to /collector * prettier formatting * fix unused * fix undefined * disable lines * lockfile --------- Co-authored-by: Timothy Carambat <rambat1010@gmail.com>
33 lines
942 B
JavaScript
33 lines
942 B
JavaScript
const { CommunicationKey } = require("../utils/comKey");
|
|
const RuntimeSettings = require("../utils/runtimeSettings");
|
|
const runtimeSettings = new RuntimeSettings();
|
|
|
|
function verifyPayloadIntegrity(request, response, next) {
|
|
const comKey = new CommunicationKey();
|
|
if (process.env.NODE_ENV === "development") {
|
|
comKey.log("verifyPayloadIntegrity is skipped in development.");
|
|
runtimeSettings.parseOptionsFromRequest(request);
|
|
next();
|
|
return;
|
|
}
|
|
|
|
const signature = request.header("X-Integrity");
|
|
if (!signature)
|
|
return response
|
|
.status(400)
|
|
.json({ msg: "Failed integrity signature check." });
|
|
|
|
const validSignedPayload = comKey.verify(signature, request.body);
|
|
if (!validSignedPayload)
|
|
return response
|
|
.status(400)
|
|
.json({ msg: "Failed integrity signature check." });
|
|
|
|
runtimeSettings.parseOptionsFromRequest(request);
|
|
next();
|
|
}
|
|
|
|
module.exports = {
|
|
verifyPayloadIntegrity,
|
|
};
|