Как предварительно обработать запросы, прежде чем обрабатывать их с помощью BaseHTTPServer?
Я хочу запретить доступ к определенным путям на моем сервере, который использует CGIHttpServer
модуль. Я создал белый список, который мне нужно будет проверять при каждом запросе, но моя проблема в том, как его реализовать.
Я пытался переопределить handle_one_request
метод (который обрабатывает запрос и отправляет ответ), но проблема в том, что информация о пути недоступна до его запуска. Это значит, что я всегда буду либо слишком рано, либо слишком поздно. Теперь я думаю о копировании-вставке исходного источника функции и редактировании его самостоятельно или переопределении wfile.flush
, что звучит слишком некрасиво.
Кто-нибудь может дать мне лучшее решение?
1 ответ
Вы можете переопределить run_cgi
в CGIHTTPRequestHandler
подкласс, и только вызов super
когда ваш белый список совпадает.