Search in sources :

Example 1 with TomcatURLStreamHandlerFactory

use of org.apache.catalina.webresources.TomcatURLStreamHandlerFactory in project spring-boot by spring-projects.

the class TomcatServletWebServerFactory method configureSsl.

/**
	 * Configure Tomcat's {@link AbstractHttp11JsseProtocol} for SSL.
	 * @param protocol the protocol
	 * @param ssl the ssl details
	 */
protected void configureSsl(AbstractHttp11JsseProtocol<?> protocol, Ssl ssl) {
    protocol.setSSLEnabled(true);
    protocol.setSslProtocol(ssl.getProtocol());
    configureSslClientAuth(protocol, ssl);
    protocol.setKeystorePass(ssl.getKeyStorePassword());
    protocol.setKeyPass(ssl.getKeyPassword());
    protocol.setKeyAlias(ssl.getKeyAlias());
    String ciphers = StringUtils.arrayToCommaDelimitedString(ssl.getCiphers());
    protocol.setCiphers(StringUtils.hasText(ciphers) ? ciphers : null);
    if (ssl.getEnabledProtocols() != null) {
        try {
            for (SSLHostConfig sslHostConfig : protocol.findSslHostConfigs()) {
                sslHostConfig.setProtocols(StringUtils.arrayToCommaDelimitedString(ssl.getEnabledProtocols()));
            }
        } catch (NoSuchMethodError ex) {
            // Tomcat 8.0.x or earlier
            Assert.isTrue(protocol.setProperty("sslEnabledProtocols", StringUtils.arrayToCommaDelimitedString(ssl.getEnabledProtocols())), "Failed to set sslEnabledProtocols");
        }
    }
    if (getSslStoreProvider() != null) {
        TomcatURLStreamHandlerFactory instance = TomcatURLStreamHandlerFactory.getInstance();
        instance.addUserFactory(new SslStoreProviderUrlStreamHandlerFactory(getSslStoreProvider()));
        protocol.setKeystoreFile(SslStoreProviderUrlStreamHandlerFactory.KEY_STORE_URL);
        protocol.setTruststoreFile(SslStoreProviderUrlStreamHandlerFactory.TRUST_STORE_URL);
    } else {
        configureSslKeyStore(protocol, ssl);
        configureSslTrustStore(protocol, ssl);
    }
}
Also used : TomcatURLStreamHandlerFactory(org.apache.catalina.webresources.TomcatURLStreamHandlerFactory) SSLHostConfig(org.apache.tomcat.util.net.SSLHostConfig)

Aggregations

TomcatURLStreamHandlerFactory (org.apache.catalina.webresources.TomcatURLStreamHandlerFactory)1 SSLHostConfig (org.apache.tomcat.util.net.SSLHostConfig)1