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)
- Carga de un archivo a través de SSL con Client Side Certificate y HttpsURLConnection de Android
- Verificar manualmente el certificado SSL en WebView
- ¿Cómo resolver el problema "ingrese la contraseña para el almacenamiento de credenciales"?
- Compruebe el método onReceivedSslError () de un WebViewClient si se firma un certificado desde una CA propia auto-firmada
- CertificateException - OpenSSLX509CertificateFactory $ ParsingException
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
- Aceptar certificados SSL autofirmados-> donde configurar TrustManager predeterminado
- ¿Cómo puedo establecer SignalR en Android Studio para ignorar los problemas de SSL para el desarrollo
- 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
- Certificado de pinning no funciona con OkHttp en Android
- Advertencia de Google Play: controlador WebViewClient.onReceivedSslError
- Intermitente PeerUnverifiedException: No hay certificado de compañero con el cliente de Android
- 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