我的Apache 2.2.15服务器有点问题。
我用mod_wsgi在它上面运行一个Django应用程序。我激活了WSGIPassAuthorization On
,这使得Basic身份验证运行良好。但是我最近实现了OAuth2.0以保护我的API(隐式授权),我认为Apache不会让它通过,因为它的格式是#34;授权:Bearer token"。 "持票人"这是我想的问题,虽然我不知道如何避免这种情况。
我试过了:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
在httpd.conf,.htaccess(设置AllowOverride All
之后)和我的vhost中。什么都不做,不起作用。
我整天都在网上爬行,除了这两种解决方案之外什么也找不到。
提前谢谢!
修改
OS : RedHatEL6.4
Apache : 2.2.15
Django: 1.6.6 w/ django-oauth-toolkit
Python: 2.7.8
答案 0 :(得分:26)
我解决了我的问题,最终与我的Apache配置完全无关。因此,如果您发现此主题正在寻找同一问题的答案,则下面的解决方案之一应该解决它:
配置WSGI:
WSGIPAssAuthorization On
配置.htaccess:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
您可以将这两个文件放入httpd / conf.d / project.conf文件中!
答案 1 :(得分:7)
除非开发人员明确启用此功能,否则多个模块将剥离Authorization标头以尝试通过阻止脚本查看用户名,密码等来尝试增强安全性。如果您只是将以下行添加到.htaccess中,其中许多模块都会允许此标题:CGIPassAuth on
(来源:Apache docs和StackOverflow)