Apache剥离"授权"头

时间:2014-10-24 13:49:27

标签: django apache oauth-2.0 mod-wsgi

我的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

2 个答案:

答案 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 docsStackOverflow