protected void reflectPropertyMaxHttpHeaderSize(BootLogger logger, Tomcat server, Connector connector, String value) { final ProtocolHandler protocolHandler = connector.getProtocolHandler(); if (protocolHandler instanceof AbstractHttp11Protocol<?>) { final AbstractHttp11Protocol<?> protocol = (AbstractHttp11Protocol<?>) protocolHandler; protocol.setMaxHttpHeaderSize(toInt("maxHttpHeaderSize(config)", value)); } else { logger.info("Cannot set the property 'maxHttpHeaderSize' because of different protocol handler: " + protocolHandler); } }
((TomcatEmbeddedServletContainerFactory) container).addConnectorCustomizers(new TomcatConnectorCustomizer() { @Override public void customize(final Connector connector) { AbstractHttp11Protocol httpProtocol = (AbstractHttp11Protocol) connector.getProtocolHandler(); httpProtocol.setMaxHttpHeaderSize(65536); httpProtocol.setCompression("on"); httpProtocol.setCompressionMinSize(256); String mimeTypes = httpProtocol.getCompressableMimeTypes(); String mimeTypesWithJson = mimeTypes + "," + MediaType.APPLICATION_JSON_VALUE; httpProtocol.setCompressableMimeTypes(mimeTypesWithJson); } });
private void configConnector(Connector connector, TomcatConf tomcatConf) { connector.setURIEncoding(tomcatConf.getUriEncoding()); ProtocolHandler protocolHandler = connector.getProtocolHandler(); if (protocolHandler instanceof AbstractProtocol) { AbstractProtocol<?> handler = (AbstractProtocol<?>) protocolHandler; handler.setAcceptCount(tomcatConf.getAcceptCount()); handler.setMaxConnections(tomcatConf.getMaxConnections()); handler.setMinSpareThreads(tomcatConf.getMinSpareThreads()); handler.setMaxThreads(tomcatConf.getMaxThreads()); handler.setConnectionTimeout(tomcatConf.getConnectionTimeout()); if (handler instanceof AbstractHttp11Protocol) { AbstractHttp11Protocol<?> protocol = (AbstractHttp11Protocol<?>) handler; protocol.setMaxHttpHeaderSize(tomcatConf.getMaxHttpHeaderSize()); } } }