const express = require('express'); const basicAuth = require('basic-auth'); const httpProxy = require('http-proxy'); const app = express(); const port = 8080; const proxy = httpProxy.createProxyServer(); // Define authentication middleware const authMiddleware = (req, res, next) => { const unauthorized = (res) => { res.set('WWW-Authenticate', 'Basic realm=Authorization Required'); return res.sendStatus(401); }; const user = basicAuth(req); if (!user || !user.name || !user.pass) { return unauthorized(res); } if (user.name === 'ace' && user.pass === '2024=ace=2024') { return next(); } else { return unauthorized(res); } }; // Use authentication middleware app.use(authMiddleware); // Proxy configuration for API and static files app.use('/api', (req, res) => { proxy.web(req, res, { target: 'http://127.0.0.1:8999' }); }); app.use('/lib', (req, res) => { proxy.web(req, res, { target: 'http://127.0.0.1:8999' }); }); app.use('/scripts', (req, res) => { proxy.web(req, res, { target: 'http://127.0.0.1:8999' }); }); app.use('/style.css', (req, res) => { proxy.web(req, res, { target: 'http://127.0.0.1:8999/style.css' }); }); app.use('/user.css', (req, res) => { proxy.web(req, res, { target: 'http://127.0.0.1:8999/user.css' }); }); // Define the homepage route app.get('/', (req, res) => { const pageHeader = `
ACE AI TestBed
`; const footDiv = ` `; res.send(pageHeader + footDiv); }); // Start the server app.listen(port, () => { console.log(`Server running at http://127.0.0.1:${port}`); });