Maintenant que SSLSocketFactory est obsolète sur Android, ce serait le meilleur moyen de gérer l'Authentification par Certificat Client?
Je suis en train de travailler sur une application Android qui exige l'Authentification par Certificat Client (avec PKCS 12 fichiers).
Suite à l'abandon de tout ce qui est apache.http.*
, nous avons commencé un assez gros travail de refactoring sur notre couche réseau, et nous avons décidé d'aller avec OkHttp comme un remplacement, et jusqu'à présent, j'aime beaucoup.
Cependant, je n'ai pas trouvé d'autre façon de gérer certificat du client auth sans l'aide de SSLSocketFactory
, avec OkHttp ou quoi que ce soit d'autre d'ailleurs. Alors, quel serait le meilleur plan d'action dans ce cas particulier?
Est-il une autre façon avec OkHttp pour gérer ce type d'authentification?
SSLSocketFactory
n'est pas déconseillée, que ce soit dans le l'expédition des versions d'Android ou, dans le M Developer Preview.Oh mon dieu, vous êtes tout à fait raison, je n'ai jamais réalisé qu'il y avait 2 classes SSLSocketFactory! org.apache.http.conn.le protocole ssl.SSLSocketFactory est obsolète mais javax.net.le protocole ssl.SSLSocketFactory ne l'est pas! Merci beaucoup pour cet éclaircissement.
À l'inverse, je n'avais pas réalisé que HttpClient avaient leur propre
SSLSocketFactory
classe. 🙂OriginalL'auteur TheYann | 2015-06-23
Vous devez vous connecter pour publier un commentaire.
Apparemment, il y a deux
SSLSocketFactory
classes. HttpClient dispose de sa propre personne, et qui est obsolète avec le reste de HttpClient. Cependant, tout le monde va être à l'aide de la plus classiquejavax.net.ssl
éditionSSLSocketFactory
, ce qui n'est pas obsolète (merci$DEITY
).OriginalL'auteur CommonsWare
si vous utilisez le protocole https, vous devez utiliser un certificat valide. Pendant votre dev étape, vous devez faire confiance à ce certificat, comment?
sslSocketFactory(SSLSocketFactory sslSocketFactory)
est obsolète et il est remplacé par lesslSocketFactory(SSLSocketFactory sslSocketFactory, X509TrustManager trustManager)
, vous devez mettre à jour votre fichier gradlele morceau de code ci-dessous va vous aider à avoir une confiance OkHttpClient qui fait confiance à tout certificat ssl.
Comment serait-ce de travailler avec l'authentification NTLM?
Je reçois encore des SSLHandshakeException: connection closed by peer
Je ne suis pas expert en NTLM, mais il peut vous avez besoin d'utiliser une bibliothèque externe comme JCIFS.
OriginalL'auteur user2167877
Look de ce j'ai trouver une solution et de mon côté c'est du travail. Vérifiez la façon dont j'ai intégré..
OkHttpClient.Générateur de client = new OkHttpClient.Constructeur();
ajouter ici toutes les propriétés d'instance du client
.
.
.
et ajouter la ligne de code pour sslSocketFactory:
OriginalL'auteur Krste Moskov