[英]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.