Defer middleware HTML file reads

9aac5a22f174644504883e84abb6ba356c26032b

Cohee <18619528+Cohee1207@users.noreply.github.com>

2 files changed, +10 -9Ignore whitespace
src/middleware/basicAuth.js+6 -6
@@ -10,13 +10,13 @@ import { getConfig, getConfigValue, safeReadFileSync } from '../util.js';
10const PER_USER_BASIC_AUTH = getConfigValue('perUserBasicAuth', false);10const PER_USER_BASIC_AUTH = getConfigValue('perUserBasicAuth', false);
11const ENABLE_ACCOUNTS = getConfigValue('enableUserAccounts', false);11const ENABLE_ACCOUNTS = getConfigValue('enableUserAccounts', false);
1212
13const unauthorizedWebpage = safeReadFileSync('./public/error/unauthorized.html') ?? '';
14const unauthorizedResponse = (res) => {
15 res.set('WWW-Authenticate', 'Basic realm="SillyTavern", charset="UTF-8"');
16 return res.status(401).send(unauthorizedWebpage);
17};
18
19const basicAuthMiddleware = async function (request, response, callback) {13const basicAuthMiddleware = async function (request, response, callback) {
14 const unauthorizedWebpage = safeReadFileSync('./public/error/unauthorized.html') ?? '';
15 const unauthorizedResponse = (res) => {
16 res.set('WWW-Authenticate', 'Basic realm="SillyTavern", charset="UTF-8"');
17 return res.status(401).send(unauthorizedWebpage);
18 };
19
20 const config = getConfig();20 const config = getConfig();
21 const authHeader = request.headers.authorization;21 const authHeader = request.headers.authorization;
2222
src/middleware/whitelist.js+4 -3
@@ -11,9 +11,6 @@ const whitelistPath = path.join(process.cwd(), './whitelist.txt');
11const enableForwardedWhitelist = getConfigValue('enableForwardedWhitelist', false);11const enableForwardedWhitelist = getConfigValue('enableForwardedWhitelist', false);
12let whitelist = getConfigValue('whitelist', []);12let whitelist = getConfigValue('whitelist', []);
13let knownIPs = new Set();13let knownIPs = new Set();
14const forbiddenWebpage = Handlebars.compile(
15 safeReadFileSync('./public/error/forbidden-by-whitelist.html') ?? '',
16);
1714
18if (fs.existsSync(whitelistPath)) {15if (fs.existsSync(whitelistPath)) {
19 try {16 try {
@@ -56,6 +53,10 @@ function getForwardedIp(req) {
56 * @returns {import('express').RequestHandler} The middleware function53 * @returns {import('express').RequestHandler} The middleware function
57 */54 */
58export default function whitelistMiddleware(whitelistMode, listen) {55export default function whitelistMiddleware(whitelistMode, listen) {
56 const forbiddenWebpage = Handlebars.compile(
57 safeReadFileSync('./public/error/forbidden-by-whitelist.html') ?? '',
58 );
59
59 return function (req, res, next) {60 return function (req, res, next) {
60 const clientIp = getIpFromRequest(req);61 const clientIp = getIpFromRequest(req);
61 const forwardedIp = getForwardedIp(req);62 const forwardedIp = getForwardedIp(req);