Как установить заголовок авторизации с Apache 2.4? - PullRequest
0 голосов
/ 22 мая 2018

Я сейчас занимаюсь разработкой веб-картографического приложения.Я использую Apache 2.4, PHP, Javascript и Dojo (библиотека javascript, используемая для отображения).Dojo делает запрос к веб-сервисам (размещенным на https: // host / server / rest / services / ... и управляемым другим отделом в моей компании).Но для доступа к этим веб-сервисам требуется аутентификация с помощью Basic.

Поскольку они не реализуют аутентификацию токена, как они должны (что мы могли бы использовать с dojo), при подключении к приложению появляется всплывающее окнодля доступа к данным в веб-сервисах.Я хотел бы настроить Apache (мой httpd.conf ), чтобы избежать появления этого всплывающего окна для наших пользователей и чтобы я установил правильный заголовок авторизации, который будет отправляться при каждом запросе Dojo к нашим веб-сервисам.

Моей первой идеей было установить заголовок с headers_module

RequestHeader set Authorization "Basic ****" 

, а затем использовать rewrite_module с тем, что я нашел в сети:

RewriteEngine on
RewriteCond %{HTTP:Authorization} ^(.*)$ [NC]
RewriteRule /.* - [E=HTTP_AUTHORIZATION:%1]

но, похоже, это не работает, потому что если я проверю с помощью:

$headers = apache_request_headers();
$server = $_SERVER["HTTP_AUTHORIZATION"];

$ headers содержит то, что я хочу, но $ server не

Поэтому я пошел дальше и решил пойти с setenvif_module , который, казалось, был хорошим решением.Теперь у меня есть:

RequestHeader set Authorization "Basic ****"
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

, хотя я не понимаю, что означает $ 1 и что он делает.

Чтобы объяснить больше, мое приложение имеет логинстраница index.php, где нет запросов к хосту / серверу / отдыху / сервисам и HTTP_AUTORIZATION выглядит пустым.Как только я захожу на свою страницу application.php, все запросы выполняются, HTTP_AUTHORIZATION кажется заполненным тем, что я хочу, «Basic ****», но появляется пустое значение REDIRECT_HTTP_AUTHORIZATION и всплывающее окно с веб-служб, запрашивающее пользователя ипароль все еще появляется.

У вас есть представление о том, что я пропустил или, возможно, сделал неправильно?
Спасибо за вашу помощь.

...