org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer#org.apache.coyote.http11.AbstractHttp11Protocol源码实例Demo

下面列出了org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer#org.apache.coyote.http11.AbstractHttp11Protocol 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: oxygen   文件: TomcatWebServer.java
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());
    }
  }
}
 
@Override
public void customize(Connector connector) {
	ProtocolHandler protocolHandler = connector.getProtocolHandler();
	if (protocolHandler instanceof AbstractHttp11Protocol) {
		AbstractHttp11Protocol protocol11 = (AbstractHttp11Protocol) protocolHandler;
		try {
			String relaxedQueryChars = (String) PropertyUtils.getProperty(protocol11, PROPERTY_NAME);
			if (relaxedQueryChars == null) {
				relaxedQueryChars = "";
			}
			relaxedQueryChars += "[]{}";
			PropertyUtils.setProperty(protocol11, PROPERTY_NAME, relaxedQueryChars);
		} catch (Exception e) {
			LOGGER.debug("failed to set relaxed query charts, Tomcat might be outdated");
		}
	}
}
 
@Override
public void accept(final Tomcat tomcat) {
    final ProtocolHandler protocolHandler = tomcat.getConnector().getProtocolHandler();
    if (!AbstractHttp11Protocol.class.isInstance(protocolHandler)) {
        return;
    }

    final LetsEncryptReloadLifecycle.LetsEncryptConfig config = instance.getConfiguration()
        .getExtension(LetsEncryptReloadLifecycle.LetsEncryptConfig.class);
    if (config.getDomains() == null || config.getDomains().trim().isEmpty()) {
        return;
    }

    new LogFacade(getClass().getName()).info("Let's Encrypt extension activated");
    tomcat.getHost().getPipeline().addValve(new LetsEncryptValve(AbstractHttp11Protocol.class.cast(protocolHandler), config));
}
 
@Bean
public EmbeddedServletContainerCustomizer servletContainerCustomizer() {
    return servletContainer -> {
        addMimeMappingsForFonts(servletContainer);

        TomcatEmbeddedServletContainerFactory container = (TomcatEmbeddedServletContainerFactory) servletContainer;

        container.setRegisterJspServlet(false);

        container.addContextCustomizers(customizer -> customizer.addWelcomeFile("index.html"));
        container.addConnectorCustomizers(
                connector -> {
                    AbstractHttp11Protocol httpProtocol = (AbstractHttp11Protocol) connector.getProtocolHandler();
                    httpProtocol.setCompression("on");
                    httpProtocol.setCompressionMinSize(256);
                    httpProtocol.setCompressableMimeTypes(COMPRESSIBLE_MEDIA_TYPES);
                }
        );
    };
}
 
源代码5 项目: Tomcat8-Source-Read   文件: ManagerServlet.java
protected void sslReload(PrintWriter writer, String tlsHostName, StringManager smClient) {
    Connector connectors[] = getConnectors();
    boolean found = false;
    for (Connector connector : connectors) {
        if (Boolean.TRUE.equals(connector.getProperty("SSLEnabled"))) {
            ProtocolHandler protocol = connector.getProtocolHandler();
            if (protocol instanceof AbstractHttp11Protocol<?>) {
                AbstractHttp11Protocol<?> http11Protoocol = (AbstractHttp11Protocol<?>) protocol;
                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);
                        }
                    }
                }
            }
        }
    }
    if (found) {
        if (tlsHostName == null || tlsHostName.length() == 0) {
            writer.println(smClient.getString("managerServlet.sslReloadAll"));
        } else {
            writer.println(smClient.getString("managerServlet.sslReload", tlsHostName));
        }
    } else {
        writer.println(smClient.getString("managerServlet.sslReloadFail"));
    }
}
 
源代码6 项目: ChengFeng1.5   文件: ChengfengConfig.java
@Bean
public TomcatServletWebServerFactory tomcatEmbedded() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
    tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
        if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
            //-1 means unlimited
            ((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
        }
    });
    return tomcat;
}
 
源代码7 项目: parker   文件: FileUploadApplication.java
@Bean
public TomcatServletWebServerFactory tomcatEmbedded() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
    tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
        if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
            //-1 means unlimited
            ((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
        }
    });
    return tomcat;
}
 
源代码8 项目: api-layer   文件: WebServerSecurityConfig.java
@Bean
public WebServerFactoryCustomizer<TomcatServletWebServerFactory> servletContainerCustomizer() {
    return factory -> factory.addConnectorCustomizers(connector -> {
        AbstractHttp11Protocol abstractProtocol = (AbstractHttp11Protocol<?>) connector.getProtocolHandler();
        abstractProtocol.setUseServerCipherSuitesOrder(true);
    });
}
 
源代码9 项目: yfs   文件: WebConfig.java
@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbedded() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
    tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
        // configure maxSwallowSize
        if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
            // -1 means unlimited, accept bytes
            ((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
        }
    });
    return tomcat;
}
 
@Bean
public EmbeddedServletContainerCustomizer servletContainerCustomizer()
{
	return servletContainer -> {
		final TomcatEmbeddedServletContainerFactory tomcatContainerFactory = (TomcatEmbeddedServletContainerFactory)servletContainer;
		tomcatContainerFactory.addConnectorCustomizers(connector -> {
			final AbstractHttp11Protocol<?> httpProtocol = (AbstractHttp11Protocol<?>)connector.getProtocolHandler();
			httpProtocol.setCompression("on");
			httpProtocol.setCompressionMinSize(256);
			final String mimeTypes = httpProtocol.getCompressibleMimeType();
			final String mimeTypesWithJson = mimeTypes + "," + MediaType.APPLICATION_JSON_VALUE + ",application/javascript";
			httpProtocol.setCompressibleMimeType(mimeTypesWithJson);
		});
	};
}
 
源代码11 项目: NettyReverseProxy   文件: WebServerConfig.java
/**
 * tomcat配置
 */
@Bean
public TomcatServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
    factory.getSession().setTimeout(Duration.ofMinutes(10));
    factory.addConnectorCustomizers(new TomcatConnectorCustomizer() {
        @Override
        public void customize(Connector connector) {
            AbstractHttp11Protocol httpProtocol = (AbstractHttp11Protocol) connector.getProtocolHandler();
            httpProtocol.setCompression("on");
            httpProtocol.setCompressibleMimeType("text/html,text/xml,text/plain,application/json,application/xml");
        }
    });
    return factory;
}
 
源代码12 项目: tomee   文件: ConnectorConfigTest.java
@Test
public void createConnector() {
    final AtomicReference<Connector> connector = new AtomicReference<>();
    try {
        new Container(new Configuration()
                .property("connector.xpoweredBy", "true")
                .property("connector.attributes.compression", "on")
                .property("connector.attributes.maxHeaderCount", "2016")) {

            @Override
            protected Connector createConnector() {
                final Connector connector1 = super.createConnector();
                connector.set(connector1);
                throw new RuntimeException("end");
            }
        };
        fail("we throw an exception to prevent startup");
    } catch (final Exception re) {
        assertEquals(re.getMessage(), "java.lang.RuntimeException: end", re.getMessage());

        final Connector c = connector.get();
        assertNotNull(c);
        assertTrue(c.getXpoweredBy());
        assertEquals(2016, AbstractHttp11Protocol.class.cast(c.getProtocolHandler()).getMaxHeaderCount());
        assertEquals("on", AbstractHttp11Protocol.class.cast(c.getProtocolHandler()).getCompression());
    }
}
 
源代码13 项目: openwebbeans-meecrowave   文件: LetsEncryptValve.java
public LetsEncryptValve(final AbstractHttp11Protocol<?> protocol,
                        final LetsEncryptReloadLifecycle.LetsEncryptConfig config) {
    super(true);
    this.protocol = protocol;
    this.config = config;
}
 
源代码14 项目: credhub   文件: CredHubApp.java
@Bean
public WebServerFactoryCustomizer servletContainerCustomizer() {
  return (factory) -> ((TomcatServletWebServerFactory) factory)
    .addConnectorCustomizers((connector) -> ((AbstractHttp11Protocol<?>) connector.getProtocolHandler())
      .setUseServerCipherSuitesOrder(true));
}
 
源代码15 项目: onetwo   文件: TomcatServer.java
public void initialize() {
		try {
			JFishTomcat tomcat = new JFishTomcat();
			if(serverConfig.getTomcatContextClassName()!=null){
				tomcat.setContextClass((Class<StandardContext>)ReflectUtils.loadClass(serverConfig.getTomcatContextClassName(), true));
			}
			int port = serverConfig.getPort();
			tomcat.setPort(port);
//			tomcat.setBaseDir(webConfig.getServerBaseDir());
			String baseDir = null;
			if(!Utils.isBlank(serverConfig.getServerBaseDir())){
				baseDir = serverConfig.getServerBaseDir();
			}else{
				baseDir = System.getProperty("java.io.tmpdir");
				logger.info("set serverBaseDir as java.io.tmpdir : {} ", baseDir);
			}
			tomcat.setBaseDir(baseDir);
			
			// This magic line makes Tomcat look for WAR files in catalinaHome/webapps
			// and automatically deploy them
//			tomcat.getHost().addLifecycleListener(new HostConfig());
			appBaseFile = new File(baseDir+"/tomcat.webapps."+this.serverConfig.getPort());
			if(!appBaseFile.exists()){
				appBaseFile.mkdirs();
			}
			appBaseFile.deleteOnExit();
			tomcat.getHost().setAppBase(appBaseFile.getAbsolutePath());
			Connector connector = tomcat.getConnector();
			connector.setURIEncoding("UTF-8");
			connector.setRedirectPort(serverConfig.getRedirectPort());
			connector.setMaxPostSize(serverConfig.getMaxPostSize());
			
			ProtocolHandler protocol = connector.getProtocolHandler();
			if(protocol instanceof AbstractHttp11Protocol){
				/*****
				 * <Connector port="8080" protocol="HTTP/1.1" 
					   connectionTimeout="20000" 
   						redirectPort="8181" compression="500" 
  						compressableMimeType="text/html,text/xml,text/plain,application/octet-stream" />
				 */
				AbstractHttp11Protocol<?> hp = (AbstractHttp11Protocol<?>) protocol;
				hp.setCompression("on");
				hp.setCompressableMimeTypes("text/html,text/xml,text/plain,application/octet-stream");
			}
			
			
			StandardServer server = (StandardServer) tomcat.getServer();
			AprLifecycleListener listener = new AprLifecycleListener();
			server.addLifecycleListener(listener);

			/*tomcat.addUser("adminuser", "adminuser");
			tomcat.addRole("adminuser", "admin");
			tomcat.addRole("adminuser", "admin");*/
			
			this.tomcat = tomcat;
		} catch (Exception e) {
			throw new RuntimeException("web server initialize error , check it. " + e.getMessage(), e);
		}
		
		/*Runtime.getRuntime().addShutdownHook(new Thread(){

			@Override
			public void run() {
				appBaseFile.delete();
			}
			
		});*/
	}