Closed eric-gardyn closed 5 months ago
that's an odd error. seems that the :54295
is the port number. in our local dev env and deploying to kubernetes we're never seen anything like this.
i'm not sure why this port number is included. perhaps there is behavior of the Azure app service that includes the port with the IP address when proxying requests from CDN/firewall to the express server.
the easiest way to work around this is probably to not use the default requireValidIpAddress()
middleware, and instead make your own custom IP address validation middleware.
see the custom middleware documentation for more information on adding your own middleware - https://mongodb.github.io/chatbot/server/custom-logic#middleware
(note that by adding your own custom middleware, it removes the default included middleware, which require valid ip address (what you want to override) and also one that requires request origin.
pseudocode example:
import { ConversationsMiddleware, logRequest } from "mongodb-chatbot-server";
function isValidAzureIp(ip: string) {
// some logic to validate if is azure ip address
}
export function requireValidIpAddress(): ConversationsMiddleware {
return (req, res, next) => {
const { ip } = req;
if (!isValidAzureIp(ip)) {
return sendErrorResponse({
reqId,
res,
httpStatus: 400,
errorMessage: `The request has an invalid IP address: ${ip}`,
});
}
res.locals.customData.ip = ip;
next();
};
}
please let me know if there are further issues here.
When deploying mongodb-chatbot-server (onto Azure app service), the server deploys fine. But it generates this error when calling /conversations API:
xxx.xxx.xxx.xxx being my public IP address