Search in sources :

Example 1 with Http2Protocol

use of org.apache.coyote.http2.Http2Protocol in project cas by apereo.

the class CasEmbeddedContainerTomcatConfiguration method configureHttp.

private void configureHttp(final TomcatEmbeddedServletContainerFactory tomcat) {
    final CasEmbeddedApacheTomcatHttpProperties http = casProperties.getServer().getHttp();
    if (http.isEnabled()) {
        LOGGER.debug("Creating HTTP configuration for the embedded tomcat container...");
        final Connector connector = new Connector(http.getProtocol());
        int port = http.getPort();
        if (port <= 0) {
            LOGGER.warn("No explicit port configuration is provided to CAS. Scanning for available ports...");
            port = SocketUtils.findAvailableTcpPort();
        }
        LOGGER.info("Activated embedded tomcat container HTTP port on [{}]", port);
        connector.setPort(port);
        LOGGER.debug("Configuring embedded tomcat container for HTTP2 protocol support");
        connector.addUpgradeProtocol(new Http2Protocol());
        http.getAttributes().forEach(connector::setAttribute);
        tomcat.addAdditionalTomcatConnectors(connector);
    }
}
Also used : CasEmbeddedApacheTomcatHttpProperties(org.apereo.cas.configuration.model.core.web.tomcat.CasEmbeddedApacheTomcatHttpProperties) Connector(org.apache.catalina.connector.Connector) SecurityConstraint(org.apache.tomcat.util.descriptor.web.SecurityConstraint) Http2Protocol(org.apache.coyote.http2.Http2Protocol)

Example 2 with Http2Protocol

use of org.apache.coyote.http2.Http2Protocol in project cas by apereo.

the class CasEmbeddedContainerTomcatConfiguration method configureAjp.

private void configureAjp(final TomcatEmbeddedServletContainerFactory tomcat) {
    final CasEmbeddedApacheTomcatAjpProperties ajp = casProperties.getServer().getAjp();
    if (ajp.isEnabled() && ajp.getPort() > 0) {
        LOGGER.debug("Creating AJP configuration for the embedded tomcat container...");
        final Connector ajpConnector = new Connector(ajp.getProtocol());
        ajpConnector.setProtocol(ajp.getProtocol());
        ajpConnector.setPort(ajp.getPort());
        ajpConnector.setSecure(ajp.isSecure());
        ajpConnector.setAllowTrace(ajp.isAllowTrace());
        ajpConnector.setScheme(ajp.getScheme());
        ajpConnector.setAsyncTimeout(Beans.newDuration(ajp.getAsyncTimeout()).toMillis());
        ajpConnector.setEnableLookups(ajp.isEnableLookups());
        ajpConnector.setMaxPostSize(ajp.getMaxPostSize());
        ajpConnector.addUpgradeProtocol(new Http2Protocol());
        if (ajp.getProxyPort() > 0) {
            LOGGER.debug("Set AJP proxy port to [{}]", ajp.getProxyPort());
            ajpConnector.setProxyPort(ajp.getProxyPort());
        }
        if (ajp.getRedirectPort() > 0) {
            LOGGER.debug("Set AJP redirect port to [{}]", ajp.getRedirectPort());
            ajpConnector.setRedirectPort(ajp.getRedirectPort());
        }
        ajp.getAttributes().forEach(ajpConnector::setAttribute);
        tomcat.addAdditionalTomcatConnectors(ajpConnector);
    }
}
Also used : Connector(org.apache.catalina.connector.Connector) CasEmbeddedApacheTomcatAjpProperties(org.apereo.cas.configuration.model.core.web.tomcat.CasEmbeddedApacheTomcatAjpProperties) Http2Protocol(org.apache.coyote.http2.Http2Protocol)

Example 3 with Http2Protocol

use of org.apache.coyote.http2.Http2Protocol in project spring-boot by spring-projects.

the class CompressionConnectorCustomizerTests method shouldCustomizeCompression.

@Test
void shouldCustomizeCompression() throws LifecycleException {
    CompressionConnectorCustomizer compressionConnectorCustomizer = new CompressionConnectorCustomizer(this.compression);
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    Http2Protocol upgradeProtocol = new Http2Protocol();
    upgradeProtocol.setHttp11Protocol((AbstractHttp11Protocol<?>) connector.getProtocolHandler());
    connector.addUpgradeProtocol(upgradeProtocol);
    compressionConnectorCustomizer.customize(connector);
    AbstractHttp11Protocol<?> abstractHttp11Protocol = (AbstractHttp11Protocol<?>) connector.getProtocolHandler();
    compressionOn(abstractHttp11Protocol.getCompression());
    minSize(abstractHttp11Protocol.getCompressionMinSize());
    mimeType(abstractHttp11Protocol.getCompressibleMimeTypes());
    excludedUserAgents(abstractHttp11Protocol.getNoCompressionUserAgents());
}
Also used : Connector(org.apache.catalina.connector.Connector) AbstractHttp11Protocol(org.apache.coyote.http11.AbstractHttp11Protocol) Http2Protocol(org.apache.coyote.http2.Http2Protocol) Test(org.junit.jupiter.api.Test)

Example 4 with Http2Protocol

use of org.apache.coyote.http2.Http2Protocol in project spring-boot by spring-projects.

the class TomcatServletWebServerFactory method customizeConnector.

// Needs to be protected so it can be used by subclasses
protected void customizeConnector(Connector connector) {
    int port = Math.max(getPort(), 0);
    connector.setPort(port);
    if (StringUtils.hasText(getServerHeader())) {
        connector.setProperty("server", getServerHeader());
    }
    if (connector.getProtocolHandler() instanceof AbstractProtocol) {
        customizeProtocol((AbstractProtocol<?>) connector.getProtocolHandler());
    }
    invokeProtocolHandlerCustomizers(connector.getProtocolHandler());
    if (getUriEncoding() != null) {
        connector.setURIEncoding(getUriEncoding().name());
    }
    // Don't bind to the socket prematurely if ApplicationContext is slow to start
    connector.setProperty("bindOnInit", "false");
    if (getHttp2() != null && getHttp2().isEnabled()) {
        connector.addUpgradeProtocol(new Http2Protocol());
    }
    if (getSsl() != null && getSsl().isEnabled()) {
        customizeSsl(connector);
    }
    TomcatConnectorCustomizer compression = new CompressionConnectorCustomizer(getCompression());
    compression.customize(connector);
    for (TomcatConnectorCustomizer customizer : this.tomcatConnectorCustomizers) {
        customizer.customize(connector);
    }
}
Also used : AbstractProtocol(org.apache.coyote.AbstractProtocol) Http2Protocol(org.apache.coyote.http2.Http2Protocol)

Example 5 with Http2Protocol

use of org.apache.coyote.http2.Http2Protocol in project spring-boot by spring-projects.

the class TomcatReactiveWebServerFactory method customizeConnector.

protected void customizeConnector(Connector connector) {
    int port = Math.max(getPort(), 0);
    connector.setPort(port);
    if (StringUtils.hasText(getServerHeader())) {
        connector.setProperty("server", getServerHeader());
    }
    if (connector.getProtocolHandler() instanceof AbstractProtocol) {
        customizeProtocol((AbstractProtocol<?>) connector.getProtocolHandler());
    }
    invokeProtocolHandlerCustomizers(connector.getProtocolHandler());
    if (getUriEncoding() != null) {
        connector.setURIEncoding(getUriEncoding().name());
    }
    // Don't bind to the socket prematurely if ApplicationContext is slow to start
    connector.setProperty("bindOnInit", "false");
    if (getHttp2() != null && getHttp2().isEnabled()) {
        connector.addUpgradeProtocol(new Http2Protocol());
    }
    if (getSsl() != null && getSsl().isEnabled()) {
        customizeSsl(connector);
    }
    TomcatConnectorCustomizer compression = new CompressionConnectorCustomizer(getCompression());
    compression.customize(connector);
    for (TomcatConnectorCustomizer customizer : this.tomcatConnectorCustomizers) {
        customizer.customize(connector);
    }
}
Also used : AbstractProtocol(org.apache.coyote.AbstractProtocol) Http2Protocol(org.apache.coyote.http2.Http2Protocol)

Aggregations

Http2Protocol (org.apache.coyote.http2.Http2Protocol)12 Connector (org.apache.catalina.connector.Connector)7 lombok.val (lombok.val)3 AbstractProtocol (org.apache.coyote.AbstractProtocol)3 File (java.io.File)2 FileOutputStream (java.io.FileOutputStream)2 FileWriter (java.io.FileWriter)2 HashMap (java.util.HashMap)2 Map (java.util.Map)2 Properties (java.util.Properties)2 FileInputStream (java.io.FileInputStream)1 IOException (java.io.IOException)1 InputStream (java.io.InputStream)1 OutputStream (java.io.OutputStream)1 StringReader (java.io.StringReader)1 Writer (java.io.Writer)1 ManagementFactory (java.lang.management.ManagementFactory)1 Field (java.lang.reflect.Field)1 MalformedURLException (java.net.MalformedURLException)1 ServerSocket (java.net.ServerSocket)1