Apache удаляет заголовок" авторизация"
у меня небольшая проблема с моим сервером Apache 2.2.15.
Я запускаю приложение Django поверх него с помощью mod_wsgi. Я активировал WSGIPassAuthorization On
, что сделало основную работу auth хорошо. Но недавно я реализовал OAuth2.0 для защиты моего API (неявный Грант), и я думаю, что Apache не пропустит его, так как он имеет форму "Authorization: Bearer token". "Носитель" - это проблема, я думаю, хотя я не знаю, как этого избежать.
пробовал :
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
в httpd.conf, .htaccess файл (после установки AllowOverride All
), и в моем vhost. Нечего делать, не работает.
Я весь день ползал по Интернету и не нашел ничего, кроме этих двух решений.
спасибо заранее !
EDIT:
OS : RedHatEL6.4
Apache : 2.2.15
Django: 1.6.6 w/ django-oauth-toolkit
Python: 2.7.8
2 ответов
Я решил свою проблему, которая, наконец, была полностью не связана с моей конфигурацией Apache. Поэтому, если вы нашли эту тему в поисках ответа на ту же проблему, одно из решений ниже должно исправить это:
конфигурация WSGI:
WSGIPAssAuthorization On
конфиг .реврайт :
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
вы можете поместить оба из них в свой httpd/conf.d / проект.файл conf !
несколько модулей снимут заголовок авторизации, чтобы попытаться повысить безопасность, предотвращая скрипты от просмотра имен пользователей, паролей и т. д... если разработчик явно не разрешает это. Многие из этих модулей разрешат этот заголовок, Если вы просто добавите следующую строку .реврайт: CGIPassAuth on
(источник: Apache docs и StackOverflow)