gpt4 book ai didi

android - Android 4 ICS 上带有 SSL 客户端证书的 WebView

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:56:46 25 4
gpt4 key购买 nike

我对 Android 上的原生 WebView 有疑问。我需要使用 SSL 客户端证书对站点进行身份验证。 Android WebView 似乎不支持这一点。作为解决方法,我使用了 WebView 的修改版本:

https://github.com/yonekawa/webview-with-client-certificate

修改后的 WebView 通过将正确配置的 SslSocketFactory 注入(inject)标准 Android WebView 来工作。这在 Android 2.x 设备上运行良好。但是,对于 Android 4 ICS,它不再起作用。 SslSocketFactory 仍然存在于 ICS 中,但是,它似乎不再被使用了。

所以我的问题是:有没有人成功地在 ICS 上配置 Android WebView 以便它使用客户端证书?还是有其他选择?

我已经尝试过的:

  • 将 SSL 客户端证书导入 Android keystore 并仅使用 WebView,无需任何修改。这不起作用,客户端证书不会随请求一起发送。不过,它可以在 native 浏览器中运行。

  • 使用 HttpClient 自行创建 SSL 连接,获取站点的 HTML 并将其传递给 WebView。这基本上是可行的,但我需要拦截 WebView 发出的所有请求并自己处理它们。但是,WebView 不提供 POST 请求的数据,这使得这种方法对我来说无法使用。

最佳答案

我想你想要的是覆盖以下隐藏方法:

public void onReceivedClientCertRequest(WebView view,
ClientCertRequestHandler handler, String host_and_port) {

默认情况下,这将取消请求。

我在这个例子之后使用了这个方法来使用隐藏的 APIs: http://devmaze.wordpress.com/2011/01/19/using-com-android-internal-part-5-summary-and-example/

抱歉回答晚了。刚刚偶然发现你的问题......希望它仍然有帮助。

关于android - Android 4 ICS 上带有 SSL 客户端证书的 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10683643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com