Моя компания продает приложение на основе LAMP (где P = Perl, а не PHP), развернутое как устройство. Клиент пытается интегрировать свой единый вход SiteMinder с нашим приложением, чтобы наше устройство находилось за прокси-сервером, на котором запущен плагин SiteMinder Apache, который действует как привратник. Для нашего приложения для аутентификации пользователя через SSO мы ожидаем увидеть HTTP-запросы, которые включают cookie-файл SSO (в данном случае SMSESSION) и пользовательскую переменную заголовка HTTP, содержащую имя пользователя.
Однако, когда наш сервер Apache получает HTTP-запросы от прокси-сервера единого входа, все пользовательские HTTP, по-видимому, удаляются, хотя файл cookie присутствует. Я поручил коду Perl записывать заголовки в файл журнала со следующим кодом:
my $q = new CGI;
...
my %headers = map { $_ => $q->http($_) } $q->http();
my $headerDump = "Got the following headers:\n";
for my $header ( keys %headers ) {
$headerDump = $headerDump . "$header: $headers{$header}\n";
}
kLogApacheError("info", $headerDump);
... и это вывод, который я получаю (слегка отредактированный для конфиденциальности):
[Wed Mar 16 23:47:31 UTC 2011] [info] Got the following headers:
HTTP_COOKIE: s_vi=[CS]v1|26AE2FFD851D091F-4000012E400035C5[CE]; s_nr=1297899843493; [snip]
HTTP_ACCEPT_LANGUAGE: en-US,en;q=0.8
HTTP_ACCEPT_ENCODING: gzip,deflate,sdch
HTTP_CONNECTION: keep-alive
HTTP_ACCEPT: application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_ACCEPT_CHARSET: ISO-8859-1,utf-8;q=0.7,*;q=0.3
HTTP_USER_AGENT: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13
HTTP_HOST: [redacted].com
IOW, ожидаемые пользователем заголовки HTTP отсутствуют. Когда мы перенаправляем трафик с прокси-сервера на другой сервер Apache (т.е. не на наше устройство), все 20+ пользовательских заголовков отображаются должным образом. Это настоятельно говорит о том, что наш сервер Apache удаляет заголовки.
Мы никогда не сталкивались с подобной проблемой в других развертываниях, даже с этим конкретным решением единого входа. Я понимаю, что это похоже на другой вопрос на этом сайте ( Сервер удаляет настраиваемые поля заголовка HTTP ), но предложения там (например, проблема, вызванная запуском mod_security) не применимы.
Есть ли другая причина, по которой наш сервер может удалять заголовки HTTP? Или что-то еще происходит?
Спасибо за любую помощь!
Мэтт