2010-10-08 53 views
3

逐跳頭我需要實現Django和我的谷歌野生動物園HTTP代理帶我到一個名爲django-webproxy項目。允許在Django代理中間件

雖然不再保持,這是相當簡單的。大多數邏輯依賴於一個簡單的代理中間件類,它攔截所有對Django WSGI服務器的請求並處理它。

如果中間件返回的數據,那麼WSGI服務器只是簡單地傳遞迴客戶端,但如果它沒有返回,Django的簡單處理由傳遞給其他中間件請求。

一切工作正常,很多,但我需要實現代理驗證,這意味着我必須發送一個Proxy-Authenticate標題的客戶端407狀態代碼。 Django允許這樣做,因爲它是一跳一跳的頭文件,Django引發異常。我怎麼能夠/強制/ kludge Django允許我發送逐跳頭文件?

FYI,對於中間件類IHE代碼可以發現here

回答

2
from django.core.servers import basehttp 

del basehttp._hop_headers['proxy-authenticate'] 
del basehttp._hop_headers['proxy-authorization'] 

這爲我工作。

+2

這種限制實際上是由WSGI庫(不Django的)徵收。的「跳頭」的Python 2.7的完整列表是 - 「連接」,「保活」,「代理身份驗證」,「代理授權」,「德」,「拖車」,「傳送編碼」, '升級'。 – s29 2012-03-19 07:23:15