26 lines
922 B
Python
26 lines
922 B
Python
|
|
from http.server import HTTPServer, BaseHTTPRequestHandler
|
||
|
|
import json
|
||
|
|
import datetime
|
||
|
|
|
||
|
|
class TestHandler(BaseHTTPRequestHandler):
|
||
|
|
def do_GET(self):
|
||
|
|
print(f"[{datetime.datetime.now()}] UPSTREAM RECEIVED: {self.command} {self.path}")
|
||
|
|
if self.path == "/dashboard" or self.path == "/api/stats":
|
||
|
|
print("ERROR: Internal route leaked to upstream!")
|
||
|
|
self.send_response(200)
|
||
|
|
self.send_header('Content-Type', 'application/json')
|
||
|
|
self.end_headers()
|
||
|
|
response = {"upstream": "response", "path": self.path}
|
||
|
|
self.wfile.write(json.dumps(response).encode())
|
||
|
|
|
||
|
|
def do_POST(self):
|
||
|
|
self.do_GET()
|
||
|
|
|
||
|
|
def log_message(self, format, *args):
|
||
|
|
return # Suppress default logging
|
||
|
|
|
||
|
|
if __name__ == "__main__":
|
||
|
|
server = HTTPServer(('localhost', 3000), TestHandler)
|
||
|
|
print("Test upstream server running on port 3000")
|
||
|
|
server.serve_forever()
|