python - 在 Django 代理中间件中允许逐跳 header

标签 python django proxy

我需要在 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/

相关文章:

python - webapp2/App Engine 中的 Debug模式不输出错误或堆栈跟踪

python - 带有反向引用的 Django 查询集过滤器

python - 属性错误 : 'ManyToManyField' object has no attribute '_m2m_reverse_name_cache'

tomcat - 使用 mod_rewrite 的 AJP 代理设置

python - 将有序字典列表转换为具有多个值的嵌套列表

python - 如何测试 Python 对象是否是模块?

python - Python 中的时间不一致

python - 我的聊天消费者无法使用 django-channels?

java - 用 Java 实现一个简单的 HTTPS 代理应用程序?

ssl - 如何在 nginx 终止 SSL 时正确使用 force-ssl 标志