Signed-off-by: Mario Danic <mario@lovelyhq.com>
This commit is contained in:
Mario Danic 2017-12-13 15:38:07 +01:00
parent ef1837a0bf
commit 2bd07b4fd5

View File

@ -92,10 +92,11 @@ public class MagicTrustManager implements X509TrustManager {
return new MagicHostnameVerifier(defaultHostNameVerifier); return new MagicHostnameVerifier(defaultHostNameVerifier);
} }
public boolean isCertInTrustStore(X509Certificate x509Certificate) { public boolean isCertInTrustStore(X509Certificate[] x509Certificates, String s) {
if (systemTrustManager != null) { if (systemTrustManager != null) {
X509Certificate x509Certificate = x509Certificates[0];
try { try {
systemTrustManager.checkServerTrusted(new X509Certificate[]{x509Certificate}, "generic"); systemTrustManager.checkServerTrusted(x509Certificates, s);
return true; return true;
} catch (CertificateException e) { } catch (CertificateException e) {
if (!isCertInMagicTrustStore(x509Certificate)) { if (!isCertInMagicTrustStore(x509Certificate)) {
@ -149,14 +150,15 @@ public class MagicTrustManager implements X509TrustManager {
@Override @Override
public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException { public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
if (!isCertInTrustStore(x509Certificates[0])) { if (!isCertInTrustStore(x509Certificates, s)) {
throw new CertificateException(); throw new CertificateException();
} }
} }
@Override @Override
public X509Certificate[] getAcceptedIssuers() { public X509Certificate[] getAcceptedIssuers() {
return new X509Certificate[0]; X509Certificate[] bla = systemTrustManager.getAcceptedIssuers();
return systemTrustManager.getAcceptedIssuers();
} }
private class MagicHostnameVerifier implements HostnameVerifier { private class MagicHostnameVerifier implements HostnameVerifier {
@ -176,7 +178,7 @@ public class MagicTrustManager implements X509TrustManager {
try { try {
X509Certificate[] certificates = (X509Certificate[]) sslSession.getPeerCertificates(); X509Certificate[] certificates = (X509Certificate[]) sslSession.getPeerCertificates();
if (certificates.length > 0 && certificates[0] != null && isCertInTrustStore(certificates[0])) { if (certificates.length > 0 && certificates[0] != null && isCertInTrustStore(certificates, s)) {
return true; return true;
} }
} catch (SSLPeerUnverifiedException e) { } catch (SSLPeerUnverifiedException e) {