在 cxf-rt-transports-http-jetty 中配置 ForwardedRequestCustomizer
Configure ForwardedRequestCustomizer in cxf-rt-transports-http-jetty
任何人都可以提供如何在 cxf-rt-transports-http-jetty 3.1.1 提供的码头中配置 ForwardedRequestCustomizer 的线索吗? cxf.xml 和 httpj 命名空间似乎不支持它。我需要处理 X-Forwarded-Proto headers,因为 SSL 在码头之前在负载均衡器上终止。码头版本是9.2.10。 Spring 4.1.7。
在 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 维护端口号和引擎之间的静态映射。
任何人都可以提供如何在 cxf-rt-transports-http-jetty 3.1.1 提供的码头中配置 ForwardedRequestCustomizer 的线索吗? cxf.xml 和 httpj 命名空间似乎不支持它。我需要处理 X-Forwarded-Proto headers,因为 SSL 在码头之前在负载均衡器上终止。码头版本是9.2.10。 Spring 4.1.7。
在 cxf.xml 处理后(即 Endpoint.publish 后)
,我最终在 Java 代码中添加了 ForwardedRequestCustomizerprivate 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 维护端口号和引擎之间的静态映射。