org.xbib.net.security.ssl.model.SSLMaterial Maven / Gradle / Ivy
The newest version!
package org.xbib.net.security.ssl.model;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLParameters;
import javax.net.ssl.X509ExtendedKeyManager;
import javax.net.ssl.X509ExtendedTrustManager;
import java.util.List;
/**
* NOTE:
* Please don't use this class directly as it is part of the internal API. Class name and methods can be changed any time.
*/
public final class SSLMaterial {
private SSLContext sslContext;
private X509ExtendedKeyManager keyManager;
private X509ExtendedTrustManager trustManager;
private HostnameVerifier hostnameVerifier;
private SSLParameters sslParameters;
private List ciphers;
private List protocols;
private SSLMaterial() {}
public SSLContext getSslContext() {
return sslContext;
}
public X509ExtendedKeyManager getKeyManager() {
return keyManager;
}
public X509ExtendedTrustManager getTrustManager() {
return trustManager;
}
public SSLParameters getSslParameters() {
return sslParameters;
}
public HostnameVerifier getHostnameVerifier() {
return hostnameVerifier;
}
public List getCiphers() {
return ciphers;
}
public List getProtocols() {
return protocols;
}
public static class Builder {
private SSLContext sslContext;
private X509ExtendedKeyManager keyManager;
private X509ExtendedTrustManager trustManager;
private HostnameVerifier hostnameVerifier;
private SSLParameters sslParameters;
private List ciphers;
private List protocols;
public Builder withSslContext(SSLContext sslContext) {
this.sslContext = sslContext;
return this;
}
public Builder withHostnameVerifier(HostnameVerifier hostnameVerifier) {
this.hostnameVerifier = hostnameVerifier;
return this;
}
public Builder withSslParameters(SSLParameters sslParameters) {
this.sslParameters = sslParameters;
return this;
}
public Builder withCiphers(List ciphers) {
this.ciphers = ciphers;
return this;
}
public Builder withProtocols(List protocols) {
this.protocols = protocols;
return this;
}
public Builder withKeyManager(X509ExtendedKeyManager keyManager) {
this.keyManager = keyManager;
return this;
}
public Builder withTrustManager(X509ExtendedTrustManager trustManager) {
this.trustManager = trustManager;
return this;
}
public SSLMaterial build() {
SSLMaterial sslMaterial = new SSLMaterial();
sslMaterial.sslContext = sslContext;
sslMaterial.keyManager = keyManager;
sslMaterial.trustManager = trustManager;
sslMaterial.hostnameVerifier = hostnameVerifier;
sslMaterial.sslParameters = sslParameters;
sslMaterial.ciphers = ciphers;
sslMaterial.protocols = protocols;
return sslMaterial;
}
}
}