gpt4 book ai didi

android - 使用 PhoneGap 的客户端证书进行身份验证

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:05 25 4
gpt4 key购买 nike

有人有使用客户端证书进行身份验证和 PhoneGap 的经验吗?我有一个由客户端证书保护的网络应用程序,我现在想使用 PhoneGap 访问这个网络应用程序。 Web 应用程序拒绝了我的请求,因为它无法对我进行身份验证,因为没有找到证书。我通过 Android 的默认浏览器下载了数据格式为 PKCS#12 的客户端证书,但我现在只存储在浏览器 keystore 中,而不是 Android 的全局 keystore 或类似的东西。总结一下:

1.) 是否可以在 Android 上使用客户端证书进行身份验证? 2.) 如果是,PhoneGap 也可以吗? 3.) 如果再次是,我该如何完成?

谢谢!

问候,拉尔夫

最佳答案

迟到总比不到好:android 4+(至少到 SDK 16)的问题是 webview 拒绝使用 SDK 隐藏的 onReceivedClientCertRequest 的客户端证书身份验证,这是无法覆盖的。

这可以通过将隐藏类包含到 android.jar(参见 https://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-1-introduction/)然后使用覆盖的 CordovaWebViewClient::onReceivedClientCertRequest 编译 cordova(来自 https://github.com/apache/incubator-cordova-android)来绕过。

我这样做是为了让 init 上的应用程序加载私钥和证书链(用户在第一个应用程序执行时从钥匙串(keychain)中选择它)。这应该在另一个线程中完成;我怀疑这是不支持客户端证书身份验证的原因,因为主线程将等待用户选择要使用的证书和/或要加载的证书链,这是 Not Acceptable 。

编辑:这是短暂的:似乎在 Android 4.2 (SDK 17) 中删除了 onReceivedClientCertRequest

结论太快了:他们只是将功能移到了 WebViewClientClassicExt 类,所以您只需要从它扩展 CordovaWebViewClient 而不是 WebViewClient,它也适用于 4.2。

关于android - 使用 PhoneGap 的客户端证书进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10125770/

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