我使用的是Spring Boot(截至目前为1.2.1),我需要增加默认的8k请求 header 大小限制,该限制位于Jetty的HttpConfiguration
类中。研究JettyEmbeddedServletContainerFactory
,我可以通过EmbeddedServletContainerCustomizer
掌握它,但看不到如何更改它的方法。
我也确实看过JettyServerCustomizer
-我知道我可以通过它掌握码头的Server
,但是再说一次-没有办法在这里更改HttpConfiguration
。
任何提示将不胜感激。
最佳答案
您可以使用JettyServerCustomizer
来重新配置HttpConfiguration
,但它已被深埋在Jetty的配置模型中:
@Bean
public EmbeddedServletContainerCustomizer customizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
if (container instanceof JettyEmbeddedServletContainerFactory) {
customizeJetty((JettyEmbeddedServletContainerFactory) container);
}
}
private void customizeJetty(JettyEmbeddedServletContainerFactory jetty) {
jetty.addServerCustomizers(new JettyServerCustomizer() {
@Override
public void customize(Server server) {
for (Connector connector : server.getConnectors()) {
if (connector instanceof ServerConnector) {
HttpConnectionFactory connectionFactory = ((ServerConnector) connector)
.getConnectionFactory(HttpConnectionFactory.class);
connectionFactory.getHttpConfiguration()
.setRequestHeaderSize(16 * 1024);
}
}
}
});
}
};
}