package com.googlecode.mycontainer.web.jetty;
import java.io.Serializable;
import java.security.KeyStore;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.util.ssl.SslContextFactory;
public class SslConnectorInfo implements Serializable {
private static final long serialVersionUID = -1104209736781892413L;
private int port = 8443;
private boolean wantClientAuth = false;
private boolean needClientAuth = false;
private String keyStore;
private String keyStorePassword;
private String keyManagerPassword;
private String certAlias;
private KeyStore trustStore;
private String trustStorePassword;
private int maxIdleTime = 30000;
public SslConnectorInfo() {
}
public SslConnectorInfo(String keyStore) {
this.keyStore = keyStore;
}
public SslConnectorInfo(int port, String keyStore) {
this.port = port;
this.keyStore = keyStore;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public boolean isWantClientAuth() {
return wantClientAuth;
}
public void setWantClientAuth(boolean wantClientAuth) {
this.wantClientAuth = wantClientAuth;
}
public boolean isNeedClientAuth() {
return needClientAuth;
}
public void setNeedClientAuth(boolean needClientAuth) {
this.needClientAuth = needClientAuth;
}
public String getKeyStore() {
return keyStore;
}
public void setKeyStore(String keyStore) {
this.keyStore = keyStore;
}
public String getKeyStorePassword() {
return keyStorePassword;
}
public void setKeyStorePassword(String keyStorePassword) {
this.keyStorePassword = keyStorePassword;
}
public String getKeyManagerPassword() {
return keyManagerPassword;
}
public void setKeyManagerPassword(String keyManagerPassword) {
this.keyManagerPassword = keyManagerPassword;
}
public String getCertAlias() {
return certAlias;
}
public void setCertAlias(String certAlias) {
this.certAlias = certAlias;
}
public KeyStore getTrustStore() {
return trustStore;
}
public void setTrustStore(KeyStore trustStore) {
this.trustStore = trustStore;
}
public String getTrustStorePassword() {
return trustStorePassword;
}
public void setTrustStorePassword(String trustStorePassword) {
this.trustStorePassword = trustStorePassword;
}
public int getMaxIdleTime() {
return maxIdleTime;
}
public void setMaxIdleTime(int maxIdleTime) {
this.maxIdleTime = maxIdleTime;
}
public Connector createConnector(Server server) {
SslContextFactory sslContextFactory = new SslContextFactory(keyStore);
sslContextFactory.setKeyStorePassword(keyStorePassword);
sslContextFactory.setKeyManagerPassword(keyManagerPassword);
sslContextFactory.setCertAlias(certAlias);
sslContextFactory.setNeedClientAuth(needClientAuth);
sslContextFactory.setWantClientAuth(wantClientAuth);
sslContextFactory.setTrustStore(trustStore);
sslContextFactory.setTrustStorePassword(trustStorePassword);
ServerConnector connector = new ServerConnector(server, sslContextFactory);
connector.setPort(port);
connector.setIdleTimeout(maxIdleTime);
return connector;
}
}