package com.hwlcn.ldap.util.ssl; import java.io.Serializable; import java.security.cert.CertificateException; import java.security.cert.X509Certificate; import java.util.Date; import javax.net.ssl.X509TrustManager; import com.hwlcn.core.annotation.NotMutable; import com.hwlcn.core.annotation.ThreadSafety; import com.hwlcn.ldap.util.ThreadSafetyLevel; @NotMutable() @ThreadSafety(level=ThreadSafetyLevel.COMPLETELY_THREADSAFE) public final class TrustAllTrustManager implements X509TrustManager, Serializable { private static final long serialVersionUID = -1295254056169520318L; private final boolean examineValidityDates; public TrustAllTrustManager() { examineValidityDates = false; } public TrustAllTrustManager(final boolean examineValidityDates) { this.examineValidityDates = examineValidityDates; } public boolean examineValidityDates() { return examineValidityDates; } public void checkClientTrusted(final X509Certificate[] chain, final String authType) throws CertificateException { if (examineValidityDates) { final Date currentDate = new Date(); for (final X509Certificate c : chain) { c.checkValidity(currentDate); } } } public void checkServerTrusted(final X509Certificate[] chain, final String authType) throws CertificateException { if (examineValidityDates) { final Date currentDate = new Date(); for (final X509Certificate c : chain) { c.checkValidity(currentDate); } } } public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; } }