Доступ к заголовкам http X_* на AWS EB PHP 5.4

У меня Wordpress развернут на платформе AWS EB PHP 5.4.45. Когда я делаю запрос из интерфейса Angular к API с авторизацией файлов cookie, мне нужно включить заголовок X_WP_NONCE, иначе Wordpress проигнорирует мой файл cookie авторизации.

Проблема в том, что при развертывании EB в переменной $_SERVER нет X_WP_NOCE. Также нет HTTP_X_WP_NONCE. Нет никакого одноразового номера вообще.

И похоже, что все заголовки с префиксом X_* удаляются.

curl -XGET -H 'A: this works' -H 'X_A: this does not work' http://example.com/

var_dump($_SERVER);

--->

array(76) {
...
["HTTP_A"]=>
  string(19) "this works"
...

// But no HTTP_X_A variable
)

К сожалению, X_WP_NONCE является частью ядра WordPress, и я не могу редактировать этот код.

Как я могу сказать EB передать заголовки X_* в php?

Спасибо,

ОБНОВЛЕНИЕ 1: apache_request_headers() действительно видит требуемый заголовок.


person Vlad Miller    schedule 10.01.2017    source источник
comment
Что такое платформа AWS EBT? Службы, сокращенно обозначаемой EBT, не существует. Вы имеете в виду эластичный бобовый стебель?   -  person Mark B    schedule 10.01.2017
comment
@MarkB Elastic Beanstalk, люди иногда называют это EBT   -  person Vlad Miller    schedule 10.01.2017
comment
Бобовый стебель относится к стеблю бобового растения. Если бы вы собирались (неправильно) разделить это на два слова, это было бы Bean Stalk, а не Beans Talk.   -  person Mark B    schedule 10.01.2017
comment
Учитывая, что в поиске Google для AWS EBT этот вопрос является лучшим результатом, я думаю, можно с уверенностью заключить, что никто не называет Elastic Beanstalk EBT в дикой природе. Я рекомендую использовать EB, чтобы избежать путаницы, поскольку это то, что всегда сокращается до переполнения стека.   -  person mfisherca    schedule 10.01.2017


Ответы (1)


Поскольку у меня есть кастомный wp-config.php, зафиксированный в репозитории (он читает ключи и пароли из переменных окружения, не надо, пожалуйста), я могу добавить временный обходной путь

if (function_exists('apache_request_headers')) {
  $all_headers = apache_request_headers();
  $_SERVER['HTTP_X_WP_NONCE'] = $all_headers['HTTP_X_WP_NONCE'];
}
person Vlad Miller    schedule 10.01.2017