Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3808 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  HttpsUrlConnection et les proxies

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

HttpsUrlConnection et les proxies

n°628309
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 11:05:58  profilanswer
 

Gron les gens ! :o
 
Bon alors vala, j'dois faire une pitite appli en 1.4 qui fait des requêtes HTTPS genre GET, POST, etc... Avec javax.net.ssl.HttpsUrlConnection, pas de souci pour ça.
Par contre, là où c'est moins rigolo, c'est que j'dois pouvoir passer un proxy :/ J'ai déjà le même truc pour le HTTP de base et j'l'ai résolu avec des trucs du style

Code :
  1. System.getProperties().put("https.proxySet", "true" );
  2. System.getProperties().put("https.proxyHost", proxyHost);
  3. System.getProperties().put("https.proxyPort", proxyPort);


et du  

Code :
  1. String authentication = proxyUser + ":" + proxyPwd;
  2. String encodedPassword = "Basic " + Base64.encodeString(authentication);
  3. connec.setRequestProperty("Proxy-Authorization", encodedPassword);


pour l'authentification.
Le problème, c'est que si j'fais ça avec HttpsUrlConnection, bin j'me fais envoyer chier [:god]
J'ai cherché un brin sur Gougueule et toussa, mais j'trouve pas mal de messages sans réponses sur les forums ou alors plein de tutos qui te disent de setter les properties system ([:kiki]) mais qui disent pas comment gérer l'authentification :/
 
Donc si vous avez des idées...


Message édité par Taiche le 02-02-2004 à 12:09:06

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
mood
Publicité
Posté le 02-02-2004 à 11:05:58  profilanswer
 

n°628310
darklord
You're welcome
Posté le 02-02-2004 à 11:07:22  profilanswer
 

[:blueflag]
t'as essayé forums.java.sun.com ?

n°628313
uriel
blood pt.2
Posté le 02-02-2004 à 11:09:16  profilanswer
 

c'est marrant je dois faire un truc similaire d'ici peu... [:romf]
.... et puis non je sais pas mais je pensais que c'etait juste avec ce que tu ecrit plus haut :/


---------------
IVG en france
n°628316
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 11:11:22  profilanswer
 

DarkLord a écrit :

[:blueflag]
t'as essayé forums.java.sun.com ?


Chu d'dans, là et à part des threads sans reply, j'trouve pas des masses de trucs :/
M'enfin des fois j'trouve des bouts de codes qui diffèrent du mien par certains aspects, donc je tente [:ddr555]
 
Ah ouais, pour la précision, quand j'tente une connec, j'ai l'exception :

Citation :

java.net.ConnectException: Connection timed out: connect
 at java.net.PlainSocketImpl.socketConnect(Native Method)
 at java.net.PlainSocketImpl.doConnect(Unknown Source)
 at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
 at java.net.PlainSocketImpl.connect(Unknown Source)
 at java.net.Socket.connect(Unknown Source)
 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(Unknown Source)
 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(Unknown Source)
 at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(Unknown Source)
 at sun.net.www.protocol.https.HttpsClient.doConnect(Unknown Source)
 at sun.net.www.http.HttpClient.openServer(Unknown Source)
 at sun.net.www.http.HttpClient.openServer(Unknown Source)
 at sun.net.www.protocol.https.HttpsClient.<init>(Unknown Source)
 at sun.net.www.protocol.https.HttpsClient.a(Unknown Source)
 at sun.net.www.protocol.https.HttpsClient.a(Unknown Source)
 at sun.net.www.protocol.https.HttpsClient.a(Unknown Source)
 at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.plainConnect(Unknown Source)
 at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
 at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
 at java.net.HttpURLConnection.getResponseCode(Unknown Source)
 at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(Unknown Source)
        at MonJouliProg.java:83
Exception in thread "main"


En gros, ça passe pas le proxy, quoi :o
Perso j'ai des gros gros doutes quant au passage du user/password vers le proxy.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°628327
darklord
You're welcome
Posté le 02-02-2004 à 11:18:19  profilanswer
 

et mettre un sniffer HTTP sur ta machine pour voir ce qu'il glandouille ca aiderait pas?

n°628333
benou
Posté le 02-02-2004 à 11:20:51  profilanswer
 

UrlConenction suxor ! :o
Socket roxxor ! :o
 


---------------
ma vie, mon oeuvre - HomePlayer
n°628334
uriel
blood pt.2
Posté le 02-02-2004 à 11:21:00  profilanswer
 

mouais, pareil, soit tu utilises Etheral... mais sinon les headers http te disent quoi?, ca peut pas suffire plutot que sniffer?


---------------
IVG en france
n°628335
uriel
blood pt.2
Posté le 02-02-2004 à 11:25:23  profilanswer
 

benou a écrit :

UrlConenction suxor ! :o
Socket roxxor ! :o
 
 


 
     

Code :
  1. String hostname = "hostname";
  2.         SocketFactory socketFactory = SSLSocketFactory.getDefault();
  3.         Socket socket = socketFactory.createSocket(hostname, port);


 
un truc comme ca et apres tu fais un getInputStream ... (necessaire ??)
 
edit: ca change rien au probleme si c'est le proxy qui merde :/


Message édité par uriel le 02-02-2004 à 11:26:25

---------------
IVG en france
n°628337
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 11:27:08  profilanswer
 

Ouais, j'ai tout le matos de tracing et autre m'enfin spa top vu le trafic réseau dégueulasse qu'il y a ici [:joce]
Par contre, j'ai trouvé ça : http://forum.java.sun.com/thread.j [...] ead=413312
Seul problème : avec ma 1.4.2, j'me bouffe un ClassCastException lors du cast de l'URLConnection en HttpsUrlConnection :o
Quand j'fais un println() de la classe, j'tombe sur com.sun.net.ssl.internal.www.protocol.https.HttpsURLConnectionOldImpl [:kunks]
En fait, le truc que j'ai fait par rapport au prog du type, c'est rajouter System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol" );
et java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
:o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°628339
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 11:28:18  profilanswer
 

uriel a écrit :


edit: ca change rien au probleme si c'est le proxy qui merde :/


Exactement :jap:
HttpsUrlConnection va certainement utiliser des SSLSockets derrière, donc y aller à la bite et au couteau, à part me virer des méthodes utiles genre getResponseCode(), ça va pas m'apporter grand-chose :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
mood
Publicité
Posté le 02-02-2004 à 11:28:18  profilanswer
 

n°628350
benou
Posté le 02-02-2004 à 11:46:19  profilanswer
 

uriel a écrit :

edit: ca change rien au probleme si c'est le proxy qui merde :/


nan mais je pars du principe que le proxy marche ...
 
j'imagine qu'il arrive à s'en servir avec son browser :o
 
C'est juste qu'en le faisant à coup de socket tu sauras exactement ce que tu envois et ce que tu reçois ...


---------------
ma vie, mon oeuvre - HomePlayer
n°628353
uriel
blood pt.2
Posté le 02-02-2004 à 11:49:33  profilanswer
 

d'autant que tout ce qu'on peut trouver, ce sont les :
System.setProperty("proxyHost", "w.x.y.z" ); // adresse IP
System.setProperty("proxyPort", "numéro du port" );  
 
deja mis :/ donc ca doir merder ailleurs


---------------
IVG en france
n°628355
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 11:51:23  profilanswer
 

Bon bin j'passe bien le proxy !@# [:--greg--]
En fait, j'utilisais mon proxy HTTPS sur le port 443 (comme dans ma config de browser) alors qu'il fallait utiliser le proxy HTTP sur le port 8080 :??: J'ai pas pigé l'astuce :o
Bref, maintenant j'me bouffe une erreur de certificat ; ça a l'air d'être un problème plus commun mais si vous avez des soluces, n'hésitez pas :jap:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°628357
benou
Posté le 02-02-2004 à 11:52:33  profilanswer
 

d'après cet article, tu ne dois pas mettre BASIC devant les données d'identification ...
http://www.javaworld.com/javaworld [...] tip42.html


---------------
ma vie, mon oeuvre - HomePlayer
n°628358
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 11:53:21  profilanswer
 

uriel a écrit :

d'autant que tout ce qu'on peut trouver, ce sont les :
System.setProperty("proxyHost", "w.x.y.z" ); // adresse IP
System.setProperty("proxyPort", "numéro du port" );  
 
deja mis :/ donc ca doir merder ailleurs


Donc ouais, y a déjà ça, mais y a des infos à passer en plusse : le login/password (apparemment, encoder en Base64 comme je le dis plus haut marche bien) et le coup du certificat que chu en train de creuser :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°628360
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 11:55:12  profilanswer
 

benou a écrit :

d'après cet article, tu ne dois pas mettre BASIC devant les données d'identification ...
http://www.javaworld.com/javaworld [...] tip42.html


D'la connerie (sauf ton respect [:ddr555]). Si j'fous pas Basic, ici, le proxy m'envoie chier. Je pense que ça dépend du type de proxy et de sa configuration.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°628364
VinceG
Posté le 02-02-2004 à 12:00:41  profilanswer
 

Taiche a écrit :

Bon bin j'passe bien le proxy !@# [:--greg--]
En fait, j'utilisais mon proxy HTTPS sur le port 443 (comme dans ma config de browser) alors qu'il fallait utiliser le proxy HTTP sur le port 8080 :??: J'ai pas pigé l'astuce :o
Bref, maintenant j'me bouffe une erreur de certificat ; ça a l'air d'être un problème plus commun mais si vous avez des soluces, n'hésitez pas :jap:


Salut,
 
Je pense que tu ne pouvais pas accéder à ton proxy en HTTPS car tu avais mis :
 
  System.getProperties().put("http.proxySet", "true" );  
  System.getProperties().put("http.proxyHost", proxyHost);  
  System.getProperties().put("http.proxyPort", proxyPort);
 
au lieu de :
 
  System.getProperties().put("https.proxySet", "true" );  
  System.getProperties().put("https.proxyHost", proxyHost);  
  System.getProperties().put("https.proxyPort", proxyPort);
 
Sauf erreur de ma part.
 
A+.

n°628366
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 12:08:43  profilanswer
 

VinceG a écrit :


Salut,
 
Je pense que tu ne pouvais pas accéder à ton proxy en HTTPS car tu avais mis :
 
[...]
 
Sauf erreur de ma part.


Ouais non, t'as raison, mnais c'est surtout moi qui ai fait un mauvais copier/coller au début [:ddr555]
J'modifie mon premier post, au cas où :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°628412
benou
Posté le 02-02-2004 à 12:57:23  profilanswer
 

Taiche a écrit :


D'la connerie (sauf ton respect [:ddr555]). Si j'fous pas Basic, ici, le proxy m'envoie chier. Je pense que ça dépend du type de proxy et de sa configuration.


nan nan c'est standardisé ce genre de truc ... ca doit être une bourde de l'article plutot parce que de tyoute façon faut bien indiquer quel type d'authentification tu utilises ... J'avais pas cherché plus loin en te filant le lien ...


---------------
ma vie, mon oeuvre - HomePlayer
n°628491
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 13:59:21  profilanswer
 

OOOOOOOOOOOOOOOK, maintenant j'ai tout qui marche :o
Bon alors, j'vais récapituler tout c'qu'il faut faire pour les gens que ça pourrait intéresser. Juste un truc à savoir : les certificats c'est relou :D
En fait, y a plusieurs points :
 
1) Préparation de la connexion
Il suffit de positionner les bonnes variables systèmes. Exemple :

Code :
  1. String proxyHost = "proxy";
  2. String proxyPort = "8080";
  3. System.getProperties().put("https.proxySet", "true" );
  4. System.getProperties().put("https.proxyHost", proxyHost);
  5. System.getProperties().put("https.proxyPort", proxyPort);


(merci à VinceG au passage pour m'avoir corrigé dans mon copier/coller [:ddr555])
Pour une obscure raison encore inconnue, utiliser mon proxy spécial https (qui est configuré comme tel dans mon browser et qui marche bien) ne passe pas :??: Bref, si vous avez des soucis de connec et plusieurs proxies, essayez les deux :o
 
2) Gestion des certificats
Là, c'est autre chose. Au début de l'établissement d'une connexion SSL, le client va aller récupérer un certificat émis par le serveur ; il s'agit d'un document contenant diverses infos pour dire "salut, moi c'est Untel, j'ai été approuvé par VeriSign ou une autre boîte de sécu et ils disent que chu gentil. Voici ma clé publique". Le tout, c'est que le client accepte ce certificat ou non (dans les browsers Ouaibe, vous vous mangez un jouli popup vous demandant si vous faites confiance au site, etc...). Depuis une applis Java, c'est autre chose.
En fait, dans le répertoire d'install de votre Java, y a un répertoire lib/security (ou jre/lib/security pour le JDK) qui contient un fichier nommé cacerts. C'est lui qui contient les certificats répertoriés comme valides. A l'établissement de la connexion, Java mate dans ce cacerts (par défaut, on peut lui en spécifier un autre via  System.setProperty("javax.net.ssl.trustStore", "chemin/monFichierContenantMesCertifs" )) et si le certificat ne fait pas partie des ceretificats "trusted", bin vlan :

Citation :

javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Couldn't find trusted certificate


Joie. Donc pour résoudre le problème, deux solutions, une chiante et une bourrin :
* vous rentrez le certif à la main en utilisant l'outil keytool (dans le bin de votre JDK ou JRE) et la page d'aide http://java.sun.com/products/jdk/1 [...] ytool.html
J'ai essayé, c'est relou et j'arrive pas à avoir toutes les infos :o M'enfin ça se fait.
* vous utilisez un javax.net.ssl.TrustManager customisé qui acceptera tous les certificats [:ddr555] Ca se code en 2 coups de cuillère à pot et c'est bien pratique pour les bourrins comme moi qui savent que leur appli se connectera pas sur divers sites un peu chelous. Maintenant, si vous codez un browser, c'est pas vraiment la solution la plus propre [:joce]
Exemple de bout de code avec le TrustManager trafiqué (récupéreud sur les forums de java.sun) :

Code :
  1. TrustManager[] trustAllCerts = new TrustManager[]{
  2.   new X509TrustManager() {
  3.   public boolean checkClientTrusted(java.security.cert.X509Certificate[] chain){
  4.   return true;
  5.   }
  6.   public boolean isServerTrusted(java.security.cert.X509Certificate[] chain){
  7.   return true;
  8.   }
  9.   public boolean isClientTrusted(java.security.cert.X509Certificate[] chain){
  10.   return true;
  11.   }
  12.   public java.security.cert.X509Certificate[] getAcceptedIssuers() {
  13.   return null;
  14.   }
  15.   public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {}
  16.   public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {}
  17.   }
  18.  };
  19.        
  20.         try
  21.         {
  22.         SSLContext sc = SSLContext.getInstance("SSL" );
  23.         sc.init(null, trustAllCerts, new java.security.SecureRandom());
  24.         HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
  25.         }
  26.         catch(NoSuchAlgorithmException nsae)
  27.         {}
  28.         catch(KeyManagementException kme)
  29.         {
  30.          kme.printStackTrace();
  31.         }


Ouais, mes catchs sont crades et j'vous emmerde :o
 
3) Mise en place de la connexion
Bin là, pas grand-chose à faire ; un coup d'URLConnection, on sette le login/password du proxy et hop, roulaize. Exemple :

Code :
  1. HttpsURLConnection connec = null;
  2.   URL url = new URL(urlString);
  3.   connec = (HttpsURLConnection)url.openConnection();
  4.   connec.setDoInput(true);
  5.             connec.setUseCaches(false);
  6.            
  7.             String authentication = proxyUser + ":" + proxyPwd;
  8.             String encodedPassword = "Basic " + Base64.encodeString(authentication);
  9.             connec.setRequestProperty("Proxy-Authorization", encodedPassword);
  10.             connec.setRequestMethod("GET" );
  11.             connec.setDoOutput(true);


Alors évidemment, il faut une classe qui gère le Base64 (y a pas dans le Java de base, merci Sun et encore bravo). Chu en train de mater les histoires de PasswordAuthentication de java.net ; si ça s'trouve, ça mâche le boulot du Base64. J'ferai un ajout ici si nécessaire.
 
4) Récupération du résultatet Noël
Bin rien de mieux à faire que choper le code de retour ou l'InputStream avec getResponseCode() ou getInputStream() [:spamafote]
 
 
Un pitit bout de code kivabien et qui fait tout ça :

Code :
  1. public static StringBuffer getPage(String urlString)
  2. {
  3.  String proxyHost = "proxy";
  4.  String proxyUser = "taiche";
  5.  String proxyPwd = "passoueurde";
  6.  String proxyPort = "8080";
  7.  System.getProperties().put("https.proxySet", "true" );
  8.         System.getProperties().put("https.proxyHost", proxyHost);
  9.         System.getProperties().put("https.proxyPort", proxyPort);
  10.        
  11.         TrustManager[] trustAllCerts = new TrustManager[]{
  12.   new X509TrustManager() {
  13.   public boolean checkClientTrusted(java.security.cert.X509Certificate[] chain){
  14.   return true;
  15.   }
  16.   public boolean isServerTrusted(java.security.cert.X509Certificate[] chain){
  17.   return true;
  18.   }
  19.   public boolean isClientTrusted(java.security.cert.X509Certificate[] chain){
  20.   return true;
  21.   }
  22.   public java.security.cert.X509Certificate[] getAcceptedIssuers() {
  23.   return null;
  24.   }
  25.   public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) {}
  26.   public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) {}
  27.   }
  28.  };
  29.        
  30.         try
  31.         {
  32.         SSLContext sc = SSLContext.getInstance("SSL" );
  33.         sc.init(null, trustAllCerts, null);
  34.         HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
  35.         }
  36.         catch(NoSuchAlgorithmException nsae)
  37.         {}
  38.         catch(KeyManagementException kme)
  39.         {
  40.          kme.printStackTrace();
  41.         }
  42.        
  43.  try
  44.  {
  45.   HttpsURLConnection connec = null;
  46.   URL url = new URL(urlString);
  47.   connec = (HttpsURLConnection)url.openConnection();
  48.   connec.setDoInput(true);
  49.             connec.setUseCaches(false);
  50.            
  51.             String authentication = proxyUser + ":" + proxyPwd;
  52.             String encodedPassword = "Basic " + Base64.encodeString(authentication);
  53.             connec.setRequestProperty("Proxy-Authorization", encodedPassword);
  54.            
  55.             connec.setRequestMethod("GET" );
  56.             connec.setDoOutput(true);
  57.            
  58.             int statusCode = connec.getResponseCode();
  59.            
  60.             StringBuffer pageContents = new StringBuffer();
  61.             if(statusCode==HttpsURLConnection.HTTP_OK)
  62.             {
  63.    BufferedReader in = new BufferedReader(new InputStreamReader(connec.getInputStream()));
  64.    String curLine = in.readLine();
  65.    while(curLine!=null)
  66.    {
  67.     pageContents.append(curLine);
  68.     curLine = in.readLine();
  69.    }
  70.             }
  71.   return pageContents;
  72.  }
  73.  catch(MalformedURLException mue)
  74.  {
  75.   mue.printStackTrace();
  76.  }
  77.  catch(IOException ioe)
  78.  {
  79.   ioe.printStackTrace();
  80.  }
  81.  return null;
  82. }


(idem, mes catchs sont crades, m'en branle :o)
 
5) Divers
L'insertion de la ligne System.getProperties().put("javax.net.debug", "ssl" ); aide bien pour les histoires de certificats :D
 
EDIT : oh putain, l'indentation [:rofl]


Message édité par Taiche le 02-02-2004 à 14:01:14

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°628501
darklord
You're welcome
Posté le 02-02-2004 à 14:06:43  profilanswer
 

putain tes catchs y sont crades :o

n°628502
benou
Posté le 02-02-2004 à 14:11:21  profilanswer
 

Taiche a écrit :

Alors évidemment, il faut une classe qui gère le Base64 (y a pas dans le Java de base, merci Sun et encore bravo). Chu en train de mater les histoires de PasswordAuthentication de java.net ; si ça s'trouve, ça mâche le boulot du Base64. J'ferai


y a pas dans l'API java. Y a des classes cachées qui le font dans com.sun.bazard, mais c'est mal :o
 
solution ici : http://jakarta.apache.org/commons/codec/


---------------
ma vie, mon oeuvre - HomePlayer
n°628503
benou
Posté le 02-02-2004 à 14:11:39  profilanswer
 

DarkLord a écrit :

putain tes catchs y sont crades :o


[:benou_+1]


---------------
ma vie, mon oeuvre - HomePlayer
n°628510
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 14:16:35  profilanswer
 

Benou, Darque : :fuck:
 
Sinon, pour l'authentification, on peut effectivement utiliser le couple Authenticator/PasswordAuthentication de java.net. Du coup, exit les Base64 et les preé-requis externes.
Exemple :

Code :
  1. Authenticator auth = new Authenticator() {
  2. protected PasswordAuthentication getPasswordAuthentication()
  3. {
  4. String username = "taiche";
  5. String password = "passoueurde";
  6. return new PasswordAuthentication( username,
  7.     password.toCharArray() );
  8. }
  9. };
  10. Authenticator.setDefault( auth );


On met tout ça à la place des 3-4 lignes qui gèrent la chaîne d'authentification et hop :o
'fin en tout cas, chezmoicamarche.org


Message édité par Taiche le 02-02-2004 à 14:17:34

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°628513
darklord
You're welcome
Posté le 02-02-2004 à 14:17:35  profilanswer
 

:jap:

n°628554
lorill
Posté le 02-02-2004 à 14:29:07  profilanswer
 

Taiche a écrit :


Alors évidemment, il faut une classe qui gère le Base64 (y a pas dans le Java de base, merci Sun et encore bravo).  


Code :
  1. import sun.misc.BASE64Encoder;

n°628566
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 14:35:02  profilanswer
 

lorill a écrit :


Code :
  1. import sun.misc.BASE64Encoder;




Ui, faut passer par l'internal, j'imagine bien que le PasswordAuthentication il faisait pas ça de façon magique :o Pis le jour où t'utilises une JVM autre (genre IBM, au hasard, pour le fun), bin :dtc:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°628568
lorill
Posté le 02-02-2004 à 14:37:07  profilanswer
 

Taiche a écrit :


Ui, faut passer par l'internal, j'imagine bien que le PasswordAuthentication il faisait pas ça de façon magique :o Pis le jour où t'utilises une JVM autre (genre IBM, au hasard, pour le fun), bin :dtc:


http://cvs.lucane.org/cgi-bin/view [...] cvs-markup

n°628575
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 02-02-2004 à 14:41:48  profilanswer
 


Ui nan mais y a 500 000 trucs qui font ça de par le Ouaibe, mais le top c'est quand même de ne se servir que de ce qu'il y a de dispo de base :o Spour ça que PasswordAuthentication c'est bien :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°628630
benou
Posté le 02-02-2004 à 15:51:53  profilanswer
 

Taiche a écrit :


Ui nan mais y a 500 000 trucs qui font ça de par le Ouaibe, mais le top c'est quand même de ne se servir que de ce qu'il y a de dispo de base :o Spour ça que PasswordAuthentication c'est bien :o


+1
 
je ne connaissais pas. Meci :jap:
 
et tant qu'à faire de prendre un truc externe, autant prendre le truc appache parce que apache c'est bien :o


---------------
ma vie, mon oeuvre - HomePlayer
n°628779
uriel
blood pt.2
Posté le 02-02-2004 à 19:04:30  profilanswer
 

:jap: gros drapal pour moi :D merci


---------------
IVG en france
n°628811
the real m​oins moins
Posté le 02-02-2004 à 19:49:48  profilanswer
 

[:plusun]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  HttpsUrlConnection et les proxies

 

Sujets relatifs
Chainer des proxies avec IE ???Questions à propos des proxies ?
Plus de sujets relatifs à : HttpsUrlConnection et les proxies


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)