WebView con certificado de cliente SSL en Android 4 ICS
Tengo un problema con el WebView nativo de Android. Necesito autenticarme en un sitio usando un certificado de cliente SSL. El Android WebView no parece apoyar esto. Como solución utilicé una versión modificada de WebView:
Https://github.com/yonekawa/webview-with-client-certificate
- <Embed> en HTML cargado por Webview Broken in Sense UI
- Diseño de página de pago de Paypal roto en webview android
- WebView causando TypeError no capturado al cargar www.google.com
- Youtube Video en WebView no se carga
- Simular la vista Web de Android en Firefox de la PC?
El WebView modificado funciona inyectando un SslSocketFactory correctamente configurado en el estándar WebView de Android. Esto funciona bien en dispositivos Android 2.x. Sin embargo, con Android 4 ICS ya no funciona. El SslSocketFactory todavía está allí en ICS, sin embargo, parece que no se utiliza más.
Así que mi pregunta es: ¿alguien ha logrado configurar el WebView de Android en ICS para que funcione con un certificado de cliente? ¿O hay alguna alternativa?
Lo que ya probé:
-
Importar el certificado de cliente SSL en el almacén de claves de Android y simplemente usar WebView sin ninguna modificación. Esto no funciona, el certificado de cliente no se envía junto con las solicitudes. Funciona en el navegador nativo, sin embargo.
-
Creando la conexión SSL usando HttpClient, obteniendo el HTML del sitio y entregándolo al WebView. Esto básicamente funciona, pero necesito interceptar todas las peticiones hechas por el WebView y manejarlas yo mismo. Sin embargo, el WebView no proporciona los datos de las solicitudes POST, lo que hace que este enfoque sea inutilizable para mí.
- Cómo cambiar la cara de la fuente de Webview en Android?
- Presentación de texto de Android TextView vs WebView
- ¿Necesita Android WebView permisos para abrir URL externas?
- Redirigir la vista web de Android con el filtro de intenciones
- ¿Cómo detengo Flash después de dejar un WebView?
- Phonegap Android Internet no funciona
- Androide WebView alternativa para webapps
- Android: WebView shouldInterceptRequest no agregar RequestProperties en el WebView
Creo que lo que quieres es sobreescribir el siguiente método oculto:
public void onReceivedClientCertRequest(WebView view, ClientCertRequestHandler handler, String host_and_port) {
De forma predeterminada, cancela la solicitud.
He utilizado este método siguiendo este ejemplo para usar APIs ocultas: http://devmaze.wordpress.com/2011/01/19/using-com-android-internal-part-5-summary-and-example/
Disculpa por la respuesta tardía. Sólo tropezó con su pregunta … Espero que todavía ayuda.
- Twitter Cómo obtener el perfil de usuario pic usando el plugin Fabric en android Studio (Fixed)
- Android: Fondo de degradado de AppBarLayout