Search in sources :

Example 1 with AbstractAjpProtocol

use of org.apache.coyote.ajp.AbstractAjpProtocol in project cas by apereo.

the class CasTomcatServletWebServerFactoryCustomizer method configureAjp.

private void configureAjp(final TomcatServletWebServerFactory tomcat) {
    val ajp = casProperties.getServer().getTomcat().getAjp();
    if (ajp.isEnabled() && ajp.getPort() > 0) {
        LOGGER.debug("Creating AJP configuration for the embedded tomcat container...");
        val ajpConnector = new Connector(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());
        val handler = (AbstractAjpProtocol) ajpConnector.getProtocolHandler();
        if (handler != null) {
            handler.setSecretRequired(ajp.isSecure());
            handler.setSecret(ajp.getSecret());
        }
        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::setProperty);
        tomcat.addAdditionalTomcatConnectors(ajpConnector);
    }
}
Also used : lombok.val(lombok.val) Connector(org.apache.catalina.connector.Connector) AbstractAjpProtocol(org.apache.coyote.ajp.AbstractAjpProtocol) Http2Protocol(org.apache.coyote.http2.Http2Protocol)

Example 2 with AbstractAjpProtocol

use of org.apache.coyote.ajp.AbstractAjpProtocol in project midpoint by Evolveum.

the class MidPointTomcatServletWebServerFactory method getWebServer.

@Override
public WebServer getWebServer(ServletContextInitializer... initializers) {
    Tomcat tomcat = new Tomcat();
    File baseDir = (this.baseDirectory != null) ? this.baseDirectory : createTempDir("tomcat");
    tomcat.setBaseDir(baseDir.getAbsolutePath());
    Connector connector = new Connector(this.protocol) {

        @Override
        public Response createResponse() {
            if (protocolHandler instanceof AbstractAjpProtocol<?>) {
                int packetSize = ((AbstractAjpProtocol<?>) protocolHandler).getPacketSize();
                return new MidpointResponse(packetSize - org.apache.coyote.ajp.Constants.SEND_HEAD_LEN, contextPath, systemObjectCache);
            } else {
                return new MidpointResponse(contextPath, systemObjectCache);
            }
        }
    };
    tomcat.getService().addConnector(connector);
    customizeConnector(connector);
    tomcat.setConnector(connector);
    tomcat.getHost().setAutoDeploy(false);
    Engine engine = tomcat.getEngine();
    if (!Strings.isNullOrEmpty(jvmRoute)) {
        engine.setJvmRoute(jvmRoute);
    }
    configureEngine(engine);
    for (Connector additionalConnector : getAdditionalTomcatConnectors()) {
        tomcat.getService().addConnector(additionalConnector);
    }
    prepareContext(tomcat.getHost(), initializers);
    return getTomcatWebServer(tomcat);
}
Also used : Connector(org.apache.catalina.connector.Connector) Tomcat(org.apache.catalina.startup.Tomcat) AbstractAjpProtocol(org.apache.coyote.ajp.AbstractAjpProtocol) File(java.io.File) Engine(org.apache.catalina.Engine)

Aggregations

Connector (org.apache.catalina.connector.Connector)2 AbstractAjpProtocol (org.apache.coyote.ajp.AbstractAjpProtocol)2 File (java.io.File)1 lombok.val (lombok.val)1 Engine (org.apache.catalina.Engine)1 Tomcat (org.apache.catalina.startup.Tomcat)1 Http2Protocol (org.apache.coyote.http2.Http2Protocol)1