Apache отключает заголовок "Авторизация"
У меня небольшая проблема с моим Apache 2.2.15 Server.
Я запускаю приложение Django поверх него с помощью mod_wsgi. Я активировал WSGIPassAuthorization On
, что сделало работу Basic auth работоспособной. Но недавно я реализовал OAuth2.0 для защиты моего API (Implicit Grant), и я думаю, что Apache не позволит ему пройти, поскольку он имеет форму "Авторизация: маркер-носитель". "Знамя" - это вопрос, который я предполагаю, хотя я не знаю, как этого избежать.
Я пробовал:
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
Ответы
Ответ 1
Я решил свою проблему, которая, наконец, была совершенно не связана с моей конфигурацией Apache. Поэтому, если вы нашли эту тему в поиске ответа на ту же проблему, одно из следующих решений должно исправить ее:
Конфигурация WSGI:
WSGIPAssAuthorization On
Конфигурация .htaccess:
RewriteEngine On
RewriteCond %{HTTP:Authorization} ^(.*)
RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
Вы можете поместить оба этих файла в ваш файл httpd/conf.d/project.conf!
Ответ 2
Несколько модулей будут лишать заголовок авторизации, чтобы попытаться повысить безопасность, не позволяя скриптам видеть имена пользователей, пароли и т.д., если разработчик явно не разрешил это. Многие из этих модулей позволят этому заголовку, если вы просто добавите следующую строку в .htaccess: CGIPassAuth on
(источник: Apache docs и fooobar.com/info/153825/...)