Acceso web automático de Webview de Android al sitio Web de https estableciendo cookies de token
Lo que estoy tratando de lograr es autologin a un sitio web https estableciendo un token como una cookie.
(Funciona en el navegador de cromo Android, pero no en la aplicación webview)
- ¿Cómo puedo establecer SignalR en Android Studio para ignorar los problemas de SSL para el desarrollo
- ¿Cómo resolver el problema "ingrese la contraseña para el almacenamiento de credenciales"?
- Aceptar certificados SSL autofirmados-> donde configurar TrustManager predeterminado
- CertificateException - OpenSSLX509CertificateFactory $ ParsingException
- Intermitente PeerUnverifiedException: No hay certificado de compañero con el cliente de Android
Básicamente estoy enfrentando dos problemas durante la carga https url en la vista web con cookie conjunto
Número 1
Estoy recibiendo el siguiente mensaje de registro.
Error al validar la cadena de certificados, error: java.security.cert.CertPathValidatorException: Ancla de confianza para la ruta de certificación no encontrada.
Traté de sobreescribir onReceivedSslError
y llamado handler.proceed();
como a continuación.
@Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { Log.d(TAG, "==> " + error.toString()); handler.proceed(); }
Pero todavía veo la página blanca (estoy asumiendo su acontecimiento debido a la edición del certificado.)
Número 2
Tengo un url de inicio de sesión conmigo (por ejemplo, https://www.abc.com/login.html )
Lo que estoy tratando de lograr es el inicio de sesión automático en la vista web mediante el establecimiento de una cookie.
CookieSyncManager.createInstance(webView.getContext()); CookieManager cookieManager = CookieManager.getInstance(); CookieManager.getInstance().setAcceptCookie(true); String token = PreferenceHelper.loadTokenFromPreference(this); String sessionCookie = "staging=" + token; cookieManager.setCookie("https://www.abc.com/aaa/", sessionCookie); CookieSyncManager.getInstance().sync(); SystemClock.sleep(1000);
Pero todavía no puedo auto login.Rather estoy viendo la página blanca.
Lo que no estoy seguro ahora es exactamente donde estoy cometiendo un error.
cookieManager.setCookie
requiere el primer argumento como una url para que la cookie necesita establecer, no estoy seguro exactamente qué url necesito darle?
¿Puede alguien sugerirme el enfoque correcto para que funcione?
Gracias
- Certificado de pinning no funciona con OkHttp en Android
- Carga de un archivo a través de SSL con Client Side Certificate y HttpsURLConnection de Android
- Verificar manualmente el certificado SSL en WebView
- Advertencia de Google Play: controlador WebViewClient.onReceivedSslError
- HttpsUrlConnection: Ancla de confianza para ruta de certificación no encontrada en 2.3
- Cuándo instalar keystore & cuándo instalar sólo el certificado envuelto en keystore
- Compruebe el método onReceivedSslError () de un WebViewClient si se firma un certificado desde una CA propia auto-firmada
- HttpsURLconnection para publicar y obtener en Android
Puede pasar la cookie como HttpHeader
en la función loadUrl
de WebView
.
HashMap<String, String> map = new HashMap<String, String>(); String token = PreferenceHelper.loadTokenFromPreference(this); String sessionCookie = "staging=" + token; map.put("Cookie", sessionCookie); webView.loadUrl(url, map);
Bueno, después de buscar durante bastante tiempo finalmente conseguí la solución.
Tuve que añadir las siguientes líneas para conseguir que funcione.
webView.getSettings().setAppCachePath(appCachePath); webView.getSettings().setAppCacheEnabled(true);
- Leer datos adicionales de intenciones de Android en el lanzamiento de la aplicación de Unity
- Cómo recuperar array multidimensional usando json en android