|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre confirmé
![]() |
Bonjour tout le monde !
Bon, j'ai deux soucis concernant mon Applet avec le HTTPS...
Il faut savoir qu'un certificat est nécessaire pour se connecter au site Web en question, et c'est surement pour cela que mon Applet refuse de s'exécuter sur le site vu que dans NetBeans ou sur un site HTTP il n'y a pas de souci. Exception retournée quand j'exécute l'Applet sur le site HTTPS (ça met d'ailleurs sacrément longtemps à me sortir l'Exception...) : Citation:
Ensuite, le transfert de fichiers. Jusque là, on a un autre Applet fonctionnel nous permettant de faire des transferts, mais sur du HTTP à l'aide de l'outil HttpClient d'Apache. D'après mes recherches, il y a une histoire de KeyStore et TrustStore. J'ai d'ailleurs trouvé pas mal d'exemples de code permettant soit de passer outre la demande de certificat du serveur (ça semble fonctionner) soit d'autoriser tous les hosts et tous les certificats (ça n'a pas fonctionné). Cela dit, je suis un peu perdu et ai du mal à trouver la bonne solution, sachant qu'il faut que je puisse faire ce transfert de fichier sur du HTTPS (pas trop le choix vu que le site requiert un certificat). Donc, comment faire pour arriver à transmettre des fichiers en HTTPS ? D'avance, merci. DarkSeiryu |
|
|
|
00
|
|
|
#2 | |
|
Membre chevronné
![]() Inscription : février 2010 Messages : 580 ![]() |
Bonjour,
Citation:
Ensuite il va te falloir signer l'applet pour faire quoi que ce soit avec un fichier. Et enfin faire du https dans l'applet. C'est pas forcement très compliqué d'autant que sur internet il y a plein d'exemple. Mais il est important que tu te documente sur ce qu'est un Keystore, un TrustStore et un certificat. Tu n'y couperas pas. Bon courage, |
|
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() |
Yo ! Merci pour ta réponse.
Alors, je sais que l'Applet s'exécute sur le poste client. Je me suis peut-être mal exprimé, mais quand je la lance depuis un site HTTP ça fonctionne, mais sur un HTTPS ça ne fonctionne pas. D'où ma demande. Ensuite, l'Applet est déjà signé (oublié de le préciser, désolé ^^). Pour ce qui est du KeyStore, je me suis documenté. Surtout que que j'ai mon propre objet KeyStore dans lequel je stocke les certificats utilisateurs qui sont stockés dans son magasin de certificats Windows ou sur le trousseau de clés Mac. Ce que je ne sais pas, c'est quoi rajouter dans mon KeyStore pour que le transfert de fichiers puisse s'éxécuter en HTTPS. Enfin, faire du HTTPS dans l'Applet. Ben oui je m'en doute, mais ma question c'est comment faire ? Quelle(s) API(s) utiliser ? Parce que les exemples dont tu parles, je ne les ai pas vu alors que j'ai fait moults recherches. Merci d'avance ! DarkSeiryu |
|
|
00
|
|
|
#4 | ||||
|
Membre confirmé
![]() |
Re à tous.
Du coup, à force de recherches, j'ai fini par me faire une méthode qui, théoriquement (ouais parce que pour moi c'est censé fonctionner Code :
Code :
Malgré plusieurs tentatives, je n'arrive pas à résoudre ce problème... Est-ce que quelqu'un pourrait m'aider SVP ? Autre question, tant que j'y suis, est-ce que cette méthode me permettra de faire du transfert de fichier ? Parce que j'ai cru comprendre que ça n'acceptait pas les données binaires (donc les fichiers). Si le transfert de fichier est censé fonctionner avec cette méthode, est-ce que je m'y prend correctement avec mon : Code :
String query = "fichier=" + URLEncoder.encode(new FileBody(file).getTransferEncoding(), encodage); Merci d'avance. DarkSeiryu EDIT : j'ai pompé cette méthode via deux sources : - http://www.java-samples.com/showtuto...utorialid=1343 pour les HttpsUrlConnection - http://www.developpez.net/forums/d24...y/#post2227955 pour tout le SSLContext EDIT 2 : pensant que le bug venait du fait que cette méthode est appelée dans une boucle pour chacun des fichiers à transférer, j'ai rajouté la déconnexion de mon HttpsURLConnection à la fin de ma méthode mais ça n'a rien changé... |
||||
|
|
00
|
|
|
#5 | ||||||
|
Membre confirmé
![]() |
Désolé je reviens à l'assaut mais j'ai vraiment besoin d'aide (c'pour le boulot ^^).
J'ai effectué des modif' du coup. Au lieu de tout faire dans une méthode static, j'ai fait une vraie classe avec un constructeur qui m'initialise la connexion HTTPS, une autre qui me crée la query et une dernière qui effectue l'envoi. Voici le code de ma classe : Code :
Dans la méthode run() de ce thread, j'ai ça : Code :
Code :
Code :
DataOutputStream output = new DataOutputStream(this._connection.getOutputStream()); Est-ce que quelqu'un aurait un élément de réponse s'il-vous-plaît ? |
||||||
|
|
00
|
|
|
#6 | ||
|
Membre confirmé
![]() |
Hum autant pour moi, il suffisait de faire un HostnameVerifier. Je pensais l'avoir déjà fait c'pour ça que quand j'ai cherché je suis passé à côté.
Le code si y'a des intéressés : Code :
Maintenant il semblerait que ma connexion en HTTPS fonctionne, puisque l'Exception qui est maintenant retournée est une java.net.SocketException: Unexpected end of file from server. Je vais aller ouvrir un thread sur le forum concerné. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com