fix: disable legacy server-side JavaScript in webroot by default in YAML-format confi...
[svrjs.git] / src / middleware / defaultHandlerChecks.js
blobf75ffb92922fa39fb148bbe5faf843957ca823ab
1 const defaultPageCSS = require("../res/defaultPageCSS.js");
2 const statusCodes = require("../res/statusCodes.js");
3 const svrjsInfo = require("../../svrjs.json");
4 const { name } = svrjsInfo;
6 module.exports = (req, res, logFacilities, config, next) => {
7 if (req.isProxy) {
8 let eheaders = config.getCustomHeaders();
9 eheaders["Content-Type"] = "text/html";
10 res.writeHead(501, statusCodes[501], eheaders);
11 res.write(
12 `<!DOCTYPE html><html><head><title>Proxy not implemented</title><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><style>${defaultPageCSS}</style></head><body><h1>Proxy not implemented</h1><p>${name
13 .replace(/&/g, "&amp;")
14 .replace(/</g, "&lt;")
15 .replace(
16 />/g,
17 "&gt;"
18 )} doesn't support proxy without proxy mod. If you're administrator of this server, then install this mod in order to use ${name
19 .replace(/&/g, "&amp;")
20 .replace(/</g, "&lt;")
21 .replace(/>/g, "&gt;")} as a proxy.</p><p><i>${config
22 .generateServerString()
23 .replace(/&/g, "&amp;")
24 .replace(/</g, "&lt;")
25 .replace(/>/g, "&gt;")}</i></p></body></html>`
27 res.end();
28 logFacilities.errmessage(
29 `${name} doesn't support proxy without proxy mod.`
31 return;
34 if (req.method == "OPTIONS") {
35 let hdrs = config.getCustomHeaders();
36 hdrs["Allow"] = "GET, POST, HEAD, OPTIONS";
37 res.writeHead(204, statusCodes[204], hdrs);
38 res.end();
39 return;
40 } else if (
41 req.method != "GET" &&
42 req.method != "POST" &&
43 req.method != "HEAD"
44 ) {
45 res.error(405);
46 logFacilities.errmessage("Invalid method: " + req.method);
47 return;
50 next();
53 module.exports.proxySafe = true;