6

我正在使用 Spring Boot(截至目前为 1.2.1),我需要增加默认的 8k 请求标头大小限制,该限制HttpConfiguration位于 Jetty 的类中。看看JettyEmbeddedServletContainerFactory我可以通过哪些方式获得,EmbeddedServletContainerCustomizer但看不到如何改变它。

我确实也看过JettyServerCustomizer- 我知道我可以通过它抓住码头Server,但又一次 - 没有办法改变HttpConfiguration这里。

任何提示将不胜感激。

4

1 回答 1

12

您可以使用 aJettyServerCustomizer重新配置,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);
                        }
                    }
                }
            });
        }
    };

}
于 2015-02-05T11:14:33.167 回答