Android SSLPeerUnverifiedException -> HostnameVerifier.verify() вызывается в бесконечном цикле

Я пытаюсь подключиться к серверу через HTTPS-соединение и библиотеку KSOAP2, а затем получаю следующее исключение:

       javax.net.ssl.SSLPeerUnverifiedException: Hostname 10.XXX.X.XXX not verified:
certificate: sha1/.../...=
DN: C=ES,CN=*.customername.es,O=XXX XXXX S.L.U\ ,OU=IT,2.5.4.5=#XXXXXXXXX,L=[location]
subjectAltNames: [*.customername.es]

Затем я попытался установить по умолчанию HostnameVerifier, позвонив:

           SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
    envelope.dotNet = true;
    envelope.setOutputSoapObject(request);
    //HttpTransportSE androidHttpTransport = crearhttptransport();
    HttpsTransportSE androidHttpsTransport = new HttpsTransportSE("10.XXX.X.XXX", 443, "/demo/webservice.asmx", MILLISECONDS_TIME_OUT);

    if (androidHttpsTransport != null) {

        //FakeX509TrustManager.allowAllSSL()
        HttpsURLConnection.setDefaultHostnameVerifier(new HostnameVerifier() {

            @Override
            public boolean verify(final String hostname, final SSLSession session) {
                HostnameVerifier hv = HttpsURLConnection.getDefaultHostnameVerifier();
                return hv.verify("10.XXX.X.XXX", session);
                //return hv.verify("*.customername.es", session);
            }
        });
        androidHttpsTransport.call(NAMESPACE + request.getName(), envelope, generateHeaders());
        return envelope.bodyIn != null ? (SoapObject) envelope.bodyIn : null;
    }

но затем я получаю StackOverFlowException, потому что метод verify (...) попадает в цикл и вызывается бесконечно:

       E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #3
Process: myapp.androidv2, PID: 32471
java.lang.RuntimeException: An error occurred while executing doInBackground()
    at android.os.AsyncTask$4.done(AsyncTask.java:399)
    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
    at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
    at java.util.concurrent.FutureTask.run(FutureTask.java:271)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:919)
 Caused by: java.lang.StackruError: stack size 1039KB
    at myapp.androidv2.resourceaccess.WSManager$1.verify(WSManager.java:209)
    at myapp.androidv2.resourceaccess.WSManager$1.verify(WSManager.java:211)
    at myapp.androidv2.resourceaccess.WSManager$1.verify(WSManager.java:211)
    at myapp.androidv2.resourceaccess.WSManager$1.verify(WSManager.java:211)
    at myapp.androidv2.resourceaccess.WSManager$1.verify(WSManager.java:211)
...)

Вы также можете увидеть прокомментированный FakeX509TrustManager.allowAllSSL(), который я также уже пытался использовать, как они здесь говорят, но он заканчивается той же ошибкой цикла.

0 ответов

Другие вопросы по тегам