[英]Apache strips down "Authorization" header
我的 Apache 2.2.15 服務器有一個小問題。 我正在使用 mod_wsgi 在它上面運行一個 Django 應用程序。 我激活了WSGIPassAuthorization On
,這使得基本身份驗證運行良好。 但是我最近實現了 OAuth2.0 來保護我的 API(隱式授權),我認為 Apache 不會讓它通過,因為它是“授權:不記名令牌”的形式。 “承載”是我猜的問題,盡管我不知道如何避免。
我試過 :
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
在 httpd.conf、.htaccess(設置AllowOverride All
)和我的虛擬主機中。 無事可做,行不通。 我已經在互聯網上爬了一天,除了這兩個解決方案之外沒有找到任何東西。
先感謝您 !
編輯:
OS : RedHatEL6.4
Apache : 2.2.15
Django: 1.6.6 w/ django-oauth-toolkit
Python: 2.7.8
我解決了我的問題,最終與我的Apache配置完全無關。 因此,如果您發現此主題尋找同一問題的答案,則下面的解決方案之一應該解決它:
配置WSGI:
WSGIPAssAuthorization On
配置.htaccess:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
您可以將這兩個文件放入httpd / conf.d / project.conf文件中!
幾個模塊將剝離Authorization標頭,試圖通過阻止腳本查看用戶名,密碼等來增強安全性......除非開發人員明確啟用此功能。 如果您只是CGIPassAuth on
添加到.htaccess中,其中許多模塊將允許此標頭: CGIPassAuth on
(source: Apache docs and StackOverflow )
為了解決這個問題,我只是WSGIPassAuthorization On
/etc/apache2/sites-available/mySite.conf
文件中添加了WSGIPassAuthorization On
,如下:
...
</Files>
</Directory>
WSGIPassAuthorization On
WSGIScriptAlias / /home/X/wsgi.py
WSGIDaemonProcess sepanta_dev python-path=/home/X python-home=/home/X/venv
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.