2012-05-21 16 views
8

मैं एंड्रॉयड पर देशी WebView के साथ एक समस्या है। मुझे एक एसएसएल क्लाइंट प्रमाणपत्र का उपयोग कर साइट के साथ प्रमाणित करने की आवश्यकता है। एंड्रॉइड वेबव्यू इस का समर्थन नहीं कर रहा है।WebView

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

संशोधित WebView मानक Android WebView में एक ठीक से विन्यस्त SSLSocketFactory इंजेक्शन लगाने के द्वारा काम करता है: समाधान के लिए मैं WebView का एक संशोधित संस्करण का इस्तेमाल किया। यह एंड्रॉइड 2.x उपकरणों पर ठीक काम करता है। हालांकि, एंड्रॉइड 4 आईसीएस के साथ यह अब काम नहीं करता है। SslSocketFactory अभी भी आईसीएस में है, ऐसा लगता है कि अब इसका उपयोग नहीं किया जाता है।

तो मेरे सवाल है: क्या किसी आईसीएस पर Android WebView को विन्यस्त इतना है कि यह क्लाइंट प्रमाणपत्र के साथ काम करता है में सफल रहा है? या कोई विकल्प है?

क्या मैं पहले से ही करने की कोशिश की:

  • एंड्रॉयड कुंजीस्टोर में SSL क्लाइंट प्रमाणपत्र आयात और बस किसी भी संशोधन के बिना WebView का उपयोग कर। यह काम नहीं करता है, क्लाइंट प्रमाणपत्र अनुरोध के साथ नहीं भेजा जाता है। यह मूल ब्राउज़र में काम करता है, यद्यपि।

  • SSL कनेक्शन अपने आप HttpClient का उपयोग कर, साइट के एचटीएमएल हो रही है और WebView करने के लिए इसे सौंपने का निर्माण। यह मूल रूप से काम करता है, लेकिन मुझे वेबव्यू द्वारा किए गए सभी अनुरोधों को अवरुद्ध करने और उन्हें स्वयं संभालने की आवश्यकता है। हालांकि, वेबव्यू POST अनुरोधों का डेटा प्रदान नहीं करता है, जो इस दृष्टिकोण को मेरे लिए उपयोग करने योग्य बनाता है।

+0

क्लाइंट प्रमाणपत्र प्राधिकरण प्रति [इस टिप्पणी] के रूप में 4.0 में तय किया जा रहा है (http://code.google.com/p/android/issues/detail?id=8196#c70)। उपयोग निर्देशों के लिए उस टिप्पणी में लिंक देखें। – Rajesh

+0

हाँ, यह स्टैंडअलोन ब्राउज़र के लिए तय हो गई है। मेरी समस्या यह है कि मैं अपने स्वयं के एप्लिकेशन में एम्बेडेड वेबव्यू के भीतर क्लाइंट प्रमाणपत्र प्रमाणीकरण का उपयोग करना चाहता हूं। – chriz

उत्तर

3

मुझे लगता है कि क्या आप चाहते हैं निम्नलिखित छिपा विधि अधिभावी है:

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

डिफ़ॉल्ट रूप से इस अनुरोध को cancle होगा।

मैं इस प्रक्रिया गुप्त रखी एपीआई प्रयोग करने के लिए इस उदाहरण की सहायता का इस्तेमाल किया है: देर से उत्तर के लिए http://devmaze.wordpress.com/2011/01/19/using-com-android-internal-part-5-summary-and-example/

क्षमा करें। बस अपने सवाल पर ठोकर खाई ... आशा है कि यह अभी भी मदद करता है।

संबंधित मुद्दे