Android Webview客户端证书& Http授权

时间:2013-05-15 12:11:22

标签: android ssl webview authorization client-certificates

我尝试使用客户端证书通过webview访问网站的最后几天。我使用了来自https://github.com/yonekawa/webview-with-client-certificate的开源项目。 Evertything在android 2.3.3平台上运行正常,我可以安装证书并在ssl错误后调用

        onReceivedSslError(WebView view, SslErrorHandler handler,
        SslError error){
                      handler.proceed();}

然后

       onReceivedHttpAuthRequest(final WebView view,
        final HttpAuthHandler handler, final String host, final String realm) 
调用了

,我可以传递凭据以进行安全访问。 问题是4.x webview没有相同的行为。我必须创建一个包含所有内部类的自定义jar,请参阅:https://github.com/yonekawa/webview-with-client-certificate/issues/1所以我可以使用hiden方法

      onReceivedClientCertRequest(WebView view,
        ClientCertRequestHandler handler, String host_and_port)

问题是该方法过度使用并且项目被编译,但该方法永远不会被调用,而是像往常一样调用 onReceivedSslError 然后页面完成加载白页而不用像2.3中一样调用 onReceivedHttpAuthRequest 。 有没有人真正设法使上述示例适用于需要客户端证书和授权的网站?

1 个答案:

答案 0 :(得分:-1)

我确实在Android 4.1.2上看到了该事件。

我用ClientCertificateWebView替换了WebView并加载了一个请求客户端证书的URL。

https://github.com/yonekawa/webview-with-client-certificate/blob/master/res/layout/main.xml

正如所料" onReceivedClientCertRequest"被调用。

确保您的服务器实际上是在请求客户端证书。