在cxf-rt-transports-http-jetty中配置ForwardedRequestCustomizer

时间:2015-09-22 08:44:36

标签: java jetty cxf

任何人都可以提供如何在cxf-rt-transports-http-jetty 3.1.1提供的jetty中配置ForwardedRequestCustomizer的线索吗? cxf.xml和httpj名称空间似乎没有它的支持。我需要处理X-Forwarded-Proto标头,因为SSL在jetty之前在负载均衡器上终止。码头的版本是9.2.10。春季4.1.7。

1 个答案:

答案 0 :(得分:0)

我在cxf.xml处理之后(即在Endpoint.publish之后)在Java代码中添加了ForwardedRequestCustomizer

private void configureForwardedRequestCustomizer()
    {
        JettyHTTPServerEngineFactory factory = new JettyHTTPServerEngineFactory();
        JettyHTTPServerEngine engine = factory.retrieveJettyHTTPServerEngine(port);
        Iterator<ConnectionFactory> iter = engine.getConnector().getConnectionFactories().iterator();
        while (iter.hasNext())
        {
            HttpConnectionFactory f = (HttpConnectionFactory) iter.next();
            f.getHttpConfiguration().addCustomizer(new ForwardedRequestCustomizer());
        }
    }

请注意,这可以用作cxf维护端口号和引擎之间的静态映射。