@Bean public TomcatEmbeddedServletContainerFactory tomcatEmbedded() { TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(); tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> { if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) { //-1 means unlimited ((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1); } }); return tomcat; }
@Bean public EmbeddedServletContainerCustomizer servletContainerCustomizer() { return new EmbeddedServletContainerCustomizer() { @Override public void customize(ConfigurableEmbeddedServletContainer servletContainer) { ((TomcatEmbeddedServletContainerFactory) servletContainer).addConnectorCustomizers( new TomcatConnectorCustomizer() { @Override public void customize(Connector connector) { AbstractHttp11Protocol httpProtocol = (AbstractHttp11Protocol) connector.getProtocolHandler(); httpProtocol.setCompression("on"); httpProtocol.setCompressionMinSize(256); String mimeTypes = httpProtocol.getCompressableMimeTypes(); String mimeTypesWithJson = mimeTypes + "," + MediaType.APPLICATION_JSON_VALUE; httpProtocol.setCompressableMimeTypes(mimeTypesWithJson); } } ); } }; }
private void customize(AbstractHttp11Protocol<?> protocol) { Compression compression = this.compression; protocol.setCompression("on"); protocol.setCompressionMinSize(getMinResponseSize(compression)); protocol.setCompressibleMimeType(getMimeTypes(compression)); if (this.compression.getExcludedUserAgents() != null) { protocol.setNoCompressionUserAgents(getExcludedUserAgents()); } }
public void setupCompression(AbstractHttp11Protocol<?> protocol) { protocol.setCompression("on"); protocol.setCompressableMimeType(COMPRESSABLE_MIME_TYPES); protocol.setMaxSwallowSize(-1); LOGGER.info("compression set for mime types: %s", COMPRESSABLE_MIME_TYPES); } }
public void setCompressableMimeTypes(String valueS) { setCompressableMimeType(valueS); }
if (tlsHostName == null || tlsHostName.length() == 0) { found = true; http11Protoocol.reloadSslHostConfigs(); } else { SSLHostConfig[] sslHostConfigs = http11Protoocol.findSslHostConfigs(); for (SSLHostConfig sslHostConfig : sslHostConfigs) { if (sslHostConfig.getHostName().equalsIgnoreCase(tlsHostName)) { found = true; http11Protoocol.reloadSslHostConfig(tlsHostName);
@Override public void init() throws Exception { // SSL implementation needs to be in place before end point is // initialized sslImplementation = SSLImplementation.getInstance(sslImplemenationName); super.init(); } }
public String getCompressableMimeTypes() { return getCompressableMimeType(); } public void setCompressableMimeTypes(String valueS) {
@Bean public EmbeddedServletContainerCustomizer servletContainerCustomizer() { return new EmbeddedServletContainerCustomizer() { @Override public void customize(ConfigurableEmbeddedServletContainerFactory factory) { ((TomcatEmbeddedServletContainerFactory) factory).addConnectorCustomizers(new TomcatConnectorCustomizer() { @Override public void customize(Connector connector) { AbstractHttp11Protocol httpProtocol = (AbstractHttp11Protocol) connector.getProtocolHandler(); httpProtocol.setCompression("on"); httpProtocol.setCompressionMinSize(64); } }); } }; }
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); } }
private void registerDefaultSSLHostConfig() { if (defaultSSLHostConfig == null) { for (SSLHostConfig sslHostConfig : findSslHostConfigs()) { if (getDefaultSSLHostConfigName().equals(sslHostConfig.getHostName())) { defaultSSLHostConfig = sslHostConfig; break; } } if (defaultSSLHostConfig == null) { defaultSSLHostConfig = new SSLHostConfig(); defaultSSLHostConfig.setHostName(getDefaultSSLHostConfigName()); getEndpoint().addSslHostConfig(defaultSSLHostConfig); } } }
private void configureUpgradeProtocol(UpgradeProtocol upgradeProtocol) { String httpUpgradeName = upgradeProtocol.getHttpUpgradeName(getEndpoint().isSSLEnabled()); boolean httpUpgradeConfigured = false; if (httpUpgradeName != null && httpUpgradeName.length() > 0) { httpUpgradeProtocols.put(httpUpgradeName, upgradeProtocol); httpUpgradeConfigured = true; getLog().info(sm.getString("abstractHttp11Protocol.httpUpgradeConfigured", getName(), httpUpgradeName)); if (getEndpoint().isAlpnSupported()) { negotiatedProtocols.put(alpnName, upgradeProtocol); getEndpoint().addNegotiatedProtocol(alpnName); getLog().info(sm.getString("abstractHttp11Protocol.alpnConfigured", getName(), alpnName)); } else { if (!httpUpgradeConfigured) { getLog().error(sm.getString("abstractHttp11Protocol.alpnWithNoAlpn", upgradeProtocol.getClass().getName(), alpnName, getName()));
protocol.reloadSslHostConfigs(); } catch (final AcmeException | IOException ex) { getLogger().error(ex.getMessage(), ex);
@SuppressWarnings("unchecked") public void setNpnHandler(String impl) { try { Class<?> c = Class.forName(impl); npnHandler = (NpnHandler<S>) c.newInstance(); } catch (Exception ex) { getLog().warn("Failed to init light protocol " + impl, ex); } }
public void setCompressableMimeTypes(String valueS) { setCompressableMimeType(valueS); }
if (tlsHostName == null || tlsHostName.length() == 0) { found = true; http11Protoocol.reloadSslHostConfigs(); } else { SSLHostConfig[] sslHostConfigs = http11Protoocol.findSslHostConfigs(); for (SSLHostConfig sslHostConfig : sslHostConfigs) { if (sslHostConfig.getHostName().equalsIgnoreCase(tlsHostName)) { found = true; http11Protoocol.reloadSslHostConfig(tlsHostName);
@Override public void init() throws Exception { // SSL implementation needs to be in place before end point is // initialized sslImplementation = SSLImplementation.getInstance(sslImplementationName); super.init(); } }
public String getCompressableMimeTypes() { return getCompressableMimeType(); } public void setCompressableMimeTypes(String valueS) {
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()); } } }
((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); } });