如何在使用BaseHTTPServer处理请求之前预处理请求?

时间:2014-08-17 18:57:41

标签: python python-2.7 basehttpserver cgihttprequesthandler cgihttpserver

我想拒绝访问使用CGIHttpServer模块的服务器上的某些路径。我想出了一个白名单,我需要检查每个请求,但我的问题是如何实现它。

我尝试覆盖handle_one_request方法(它处理请求并发送响应),但问题是路径信息在运行之前不可用。这意味着我总是太早或太晚。现在我想要复制粘贴原始函数源并自己编辑它或覆盖wfile.flush,这听起来太难看了。

有人能给我一个更好的解决方案吗?

这是source code for handle_one_request

1 个答案:

答案 0 :(得分:1)

您可以覆盖run_cgi子类中的CGIHTTPRequestHandler,并在白名单匹配时仅调用super