package org.openstack.atlas.restclients.atomhopper.util; import javax.net.ssl.TrustManager; import javax.net.ssl.TrustManagerFactory; import javax.net.ssl.X509TrustManager; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; /** * @author olamy * @version $Id: EasyX509TrustManager.java 765355 2009-04-15 20:59:07Z evenisse $ * @since 1.2.3 */ public class EasyX509TrustManager implements X509TrustManager { private X509TrustManager standardTrustManager = null; /** * Constructor for EasyX509TrustManager. */ public EasyX509TrustManager(KeyStore keystore) throws NoSuchAlgorithmException, KeyStoreException { super(); TrustManagerFactory factory = TrustManagerFactory.getInstance( TrustManagerFactory.getDefaultAlgorithm() ); factory.init( keystore ); TrustManager[] trustmanagers = factory.getTrustManagers(); if ( trustmanagers.length == 0 ) { throw new NoSuchAlgorithmException( "no trust manager found" ); } this.standardTrustManager = (X509TrustManager) trustmanagers[0]; } /** * @see javax.net.ssl.X509TrustManager#checkClientTrusted(java.security.cert.X509Certificate[],String authType) */ public void checkClientTrusted( X509Certificate[] certificates, String authType ) throws CertificateException { standardTrustManager.checkClientTrusted( certificates, authType ); } /** * @see javax.net.ssl.X509TrustManager#checkServerTrusted(java.security.cert.X509Certificate[],String authType) */ public void checkServerTrusted( X509Certificate[] certificates, String authType ) throws CertificateException { if ( ( certificates != null ) && ( certificates.length == 1 ) ) { certificates[0].checkValidity(); } else { standardTrustManager.checkServerTrusted( certificates, authType ); } } /** * @see javax.net.ssl.X509TrustManager#getAcceptedIssuers() */ public X509Certificate[] getAcceptedIssuers() { return this.standardTrustManager.getAcceptedIssuers(); } }