package org.openstack.atlas.adapter.zxtm;
import java.security.KeyStore;
import java.security.Provider;
import java.security.cert.X509Certificate;
import javax.net.ssl.ManagerFactoryParameters;
import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactorySpi;
import javax.net.ssl.X509TrustManager;
/* The following code disables certificate checking.
* Use the Security.addProvider and Security.setProperty
* calls to enable it */
public final class NaiveTrustProvider extends Provider {
private static final long serialVersionUID = -656249890541787247L;
public static final String TRUST_PROVIDER_ALG = "TrustAllCertificates";
public NaiveTrustProvider() {
super("NaiveTrustProvider", 1.0, "Trust self-signed certificates");
put("TrustManagerFactory." + TRUST_PROVIDER_ALG,
MyTrustManagerFactory.class.getName());
}
protected static class MyTrustManagerFactory extends TrustManagerFactorySpi {
public MyTrustManagerFactory() {
}
@Override
protected void engineInit(KeyStore keystore) {
nop();
}
@Override
protected void engineInit(ManagerFactoryParameters mgrparams) {
nop();
}
@Override
protected TrustManager[] engineGetTrustManagers() {
return new TrustManager[]{new MyX509TrustManager()};
}
private void nop(){
}
}
protected static class MyX509TrustManager implements X509TrustManager {
@Override
public void checkClientTrusted(X509Certificate[] chain, String authType) {
nop();
}
@Override
public void checkServerTrusted(X509Certificate[] chain, String authType) {
nop();
}
@Override
public X509Certificate[] getAcceptedIssuers() {
return null;
}
private void nop(){
}
}
}