package com.aol.micro.server.servers.tomcat;
import org.apache.coyote.http11.AbstractHttp11JsseProtocol;
import com.aol.micro.server.config.SSLProperties;
public class SSLConfigurationBuilder {
public void build(AbstractHttp11JsseProtocol<?> protocol,SSLProperties sslProperties) {
protocol.setKeystoreFile(sslProperties.getKeyStoreFile()); // contains server keypair
protocol.setKeyPass(sslProperties.getKeyStorePass());
sslProperties.getKeyStoreType().ifPresent(type->protocol.setKeystoreType(type));
sslProperties.getKeyStoreProvider().ifPresent(provider->protocol.setKeystoreProvider(provider));
sslProperties.getTrustStoreFile().ifPresent(file->protocol.setTruststoreFile(file)); // contains client certificate
sslProperties.getTrustStorePass().ifPresent(pass->protocol.setTruststorePass(pass));
sslProperties.getTrustStoreType().ifPresent(type->protocol.setTruststoreType(type));
sslProperties.getTrustStoreProvider().ifPresent(provider->protocol.setTruststoreProvider(provider));
sslProperties.getClientAuth().ifPresent(auth->protocol.setClientAuth(auth));
protocol.setSSLEnabled(true);
sslProperties.getCiphers().ifPresent(ciphers->protocol.setCiphers(ciphers));
sslProperties.getProtocol().ifPresent(pr->protocol.setSslProtocol(pr));
}
}