我需要在 Django 中实现一个 HTTP 代理,我的 Google Safari 将我带到了一个名为 django-webproxy 的项目.
虽然不再维护,但还是挺简单的。大多数逻辑依赖于一个简单的代理中间件类,它拦截所有对 Django WSGI 服务器的请求并进行处理。
如果中间件返回任何数据,WSGI 服务器简单地将其传回客户端,但如果没有返回任何数据,Django 简单地通过传递给其他中间件来处理请求。
几乎一切正常,但我需要实现代理身份验证,这意味着我必须使用 Proxy-Authenticate
header 向客户端发送 407 状态代码。 Django 不允许这样做,因为它是逐跳 header ,Django 会抛出异常。我如何破解/强制/kludge Django 允许我发送逐跳 header ?
仅供引用,可以找到中间件类的代码here .
最佳答案
from django.core.servers import basehttp
del basehttp._hop_headers['proxy-authenticate']
del basehttp._hop_headers['proxy-authorization']
这对我有用。
关于python - 在 Django 代理中间件中允许逐跳 header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3889054/