package org.concord.otrunk.util;
import java.io.IOException;
import java.net.URL;
import java.security.cert.Certificate;
import java.security.cert.CertificateException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.SSLSession;
public class ConcordHostnameVerifier
implements HostnameVerifier
{
X509Certificate concordCert;
public ConcordHostnameVerifier() throws CertificateException, IOException {
// Init the concordCert
URL certURL = this.getClass().getClassLoader().getResource("org/concord/otrunk/concord.cert");
CertificateFactory certFactory = CertificateFactory.getInstance("X.509");
concordCert = (X509Certificate) certFactory.generateCertificate(certURL.openStream());
}
public boolean verify(String hostname, SSLSession session)
{
/*
* Verify if the Concord Cert matches the session cert
*/
try {
Certificate[] certs = session.getPeerCertificates();
X509Certificate cert = (X509Certificate) certs[0];
if (cert.equals(concordCert)) {
return true;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
}