}
HttpsURLConnectionInfo info = (HttpsURLConnectionInfo)connectionInfo;
if (info.getServerCertificates() == null
|| info.getServerCertificates().length == 0) {
throw new UntrustedURLConnectionIOException(
"No server certificates were found"
);
} else {
X509Certificate[] certs = (X509Certificate[])info.getServerCertificates();
if (!certConstraints.matches(certs[0])) {
throw new UntrustedURLConnectionIOException(
"The server certificate(s) do not match the defined cert constraints"
);
}
}
}
};
message.put(MessageTrustDecider.class, trust);
} else {
throw new UntrustedURLConnectionIOException(
"TLS is not in use"
);
}
} catch (UntrustedURLConnectionIOException ex) {
throw new Fault(ex);
}
} else {
try {
TLSSessionInfo tlsInfo = message.get(TLSSessionInfo.class);
final Certificate[] certs = tlsInfo.getPeerCertificates();
if (certs == null || certs.length == 0) {
throw new UntrustedURLConnectionIOException(
"No client certificates were found"
);
} else {
X509Certificate[] x509Certs = (X509Certificate[])certs;
if (!certConstraints.matches(x509Certs[0])) {
throw new UntrustedURLConnectionIOException(
"The client certificate does not match the defined cert constraints"
);
}
}
} catch (UntrustedURLConnectionIOException ex) {