繁体   English   中英

通过代理将Apache标头转发到Jetty

[英]Forwarding Apache headers through proxy to Jetty

我的Apache conf文件中有这个:

<IfModule headers_module>
    SetEnv ntPrincipal "user@domain.com"
    SetEnv legalGivenNames "Me"
    SetEnv legalFamilyName "LastName"
    SetEnv email "user@domain.com"
    SetEnv partyId "123456"
    SetEnv lang "eng"
    #Set Env activeDirectoryGroup "Domain\GroupA"
</IfModule>

这将在PHP $_SERVER['ntPrincipal']启用以下功能。

原因是在我们的本地开发环境中伪造了类似的标头,这些标头在我们的开发/测试/生产环境中被自动注入(通过Shibboleth)。 这对于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>

更新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上不可用。

这是我最终使用的似乎有效的方法(PHP和Jetty均参见标头):

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

# Daisy Headers
RequestHeader set ntPrincipal "user@domain.com"
RequestHeader set legalGivenNames "user"
RequestHeader set legalFamilyName "lname"
RequestHeader set email "user.lname@domain.com"
RequestHeader set partyId "123456"
RequestHeader set lang "eng"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM