2013-11-28 1 views
0

У меня есть это в моей конф файле Apache:Forwarding Apache заголовки через прокси-сервер для Jetty

<IfModule headers_module> 
    SetEnv ntPrincipal "[email protected]" 
    SetEnv legalGivenNames "Me" 
    SetEnv legalFamilyName "LastName" 
    SetEnv email "[email protected]" 
    SetEnv partyId "123456" 
    SetEnv lang "eng" 
    #Set Env activeDirectoryGroup "Domain\GroupA" 
</IfModule> 

Это позволяет следующее PHP $_SERVER['ntPrincipal'].

Причина этого заключается в подделке аналогичных заголовков в наших локальных средах разработки, которые автоматически вводятся (через Shibboleth) в наши среды dev/test/prod. Это отлично работает для Apache/PHP.

Проблема: моя локальная среда теперь имеет прокси-сервер для Jetty (несвязанного независимого приложения) и пересылает те же заголовки.

Вот моя конфигурация Apache:

ProxyPass /daisy/ http://127.0.0.1:8888/ 
ProxyPassReverse /daisy/ http://127.0.0.1:8888/ 

ProxyHTMLURLMap http://127.0.0.1 /daisy/ 

<Location /daisy/> 
    ProxyPassReverse/
    SetOutputFilter proxy-html 
    ProxyHTMLURLMap http://127.0.0.1:8888 /daisy/ 
    ProxyHTMLURLMap//daisy/ 
    ProxyHTMLURLMap /daisy/ /daisy/ 
    RequestHeader unset Accept-Encoding 
</Location> 

Update 1

Enumeration<String> headerNames = request.getHeaderNames(); 

while (headerNames.hasMoreElements()) { 

    String headerName = headerNames.nextElement(); 
    System.out.println(headerName); 

    Enumeration<String> headers = request.getHeaders(headerName); 
    while (headers.hasMoreElements()) { 
     String headerValue = headers.nextElement(); 
     System.out.println(headerValue); 
    } 
} 

Этот фрагмент кода содержит список всех заголовков, отправленных в Jetty. В этом случае заголовки, доступные в PHP, недоступны на Jetty.

ответ

0

Вот что я в конечном итоге, используя это, кажется, работает (как PHP и Jetty видеть заголовки):

# PHP Headers 
<IfModule headers_module> 
     SetEnv ntPrincipal "[email protected]" 
     SetEnv legalGivenNames "user" 
     SetEnv legalFamilyName "lname" 
     SetEnv email "[email protected]" 
     SetEnv partyId "123456" 
     SetEnv lang "eng" 
     #Set Env activeDirectoryGroup "domain\group" 
</IfModule> 

# Daisy Headers 
RequestHeader set ntPrincipal "[email protected]" 
RequestHeader set legalGivenNames "user" 
RequestHeader set legalFamilyName "lname" 
RequestHeader set email "[email protected]" 
RequestHeader set partyId "123456" 
RequestHeader set lang "eng" 
Смежные вопросы