[JAVA] URL du format : http://LOGIN:PASSWORD@ma-machi ne [RESOLU]

URL du format : http://LOGIN:PASSWORD@ma-machi ne [RESOLU] [JAVA] - Java - Programmation

Marsh Posté le 30-07-2003 à 11:32:39    

Salut,
J'ai besoin d'appeler une URL de ce format:
 
http://LOGIN:PASSWORD@ma-machine
 
Seulement, quand je le fait d'un navigateur, ça marche, quand je crée mon URL avec cette String, le serveur me renvoit une erreur 401 (non authentifié).
Visiblement mon URL est correctement crée (le champ user-info représenté par 'LOGIN:PASSWORD' est correctement mis à jour...)...
 
Je sèche un peu, quelqu'un a une idée?
 
(Bien sûr, il m'est impossible de toucher au serveur, sinon c'est trop facile!  ;) )
 
Merci!


Message édité par therier le 30-07-2003 à 17:36:07
Reply

Marsh Posté le 30-07-2003 à 11:32:39   

Reply

Marsh Posté le 30-07-2003 à 11:53:49    

mais c'est quoi ton problème au juste ... Qd tu invoques cette URL à la main depuis ton navigateur ca fonctionne et qd tu passe par Java ca ne marche pas.
 
Mais ca veut dire quoi? Tu n'arrives pas à créer l'URL? Java invoque ton navigateur? Tu ouvres une socket depuis Java à la barbare?  
 
comprends rien :(
 


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 30-07-2003 à 12:01:44    

DarkLord a écrit :

mais c'est quoi ton problème au juste ... Qd tu invoques cette URL à la main depuis ton navigateur ca fonctionne et qd tu passe par Java ca ne marche pas.
 
Mais ca veut dire quoi? Tu n'arrives pas à créer l'URL? Java invoque ton navigateur? Tu ouvres une socket depuis Java à la barbare?  
 
comprends rien :(
 
 


 
Je me precise un peu...
 
En gros, c une URL sécurisé avec la securité à la con du style  
http://User:Password@ip-de-la-mach [...] re-secure/
 
Avec mon navigateur, l'authentification se fait (le serveur choppe le user et le password).
Avec mon instance URL en Java, lorsque je fais un getContent(), g une erreur 401 (Unauthorized).  
 
En gros, je ne sais pas ce qui est fait de ce champ User:Password à l'envoi de la requête.  
 
G tracé la reception de la même requete de IE et de Java sur un serveur bidon ecrit par moi en envoyant la requete : http://user:password@ma-machine/secure et j'obtiens:
 
Pour IE:
 
GET /secure HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, application/x-shockwave-flash, */*
Accept-Language: fr
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0; T312461; 1.21.2 )
Host: ma-machine
Connection: Keep-Alive
 
Pour Java:
 
GET /secure HTTP/1.1
User-Agent: Java/1.4.1_02
Host: ma-machine
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
 
 
 
Aucune trace de user et password...

Reply

Marsh Posté le 30-07-2003 à 12:08:57    

Pour IE, j'vois pas comment tu peux être authentifié puisque t'as pas la ligne Authorization dans la requête.. :heink:

Reply

Marsh Posté le 30-07-2003 à 12:13:05    

therier a écrit :


Je me precise un peu...
 
En gros, c une URL sécurisé avec la securité à la con du style  
http://User:Password@ip-de-la-mach [...] re-secure/


Avec le password direct en clair dans l'URL, j'adore [:david bowie]


---------------
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.
Reply

Marsh Posté le 30-07-2003 à 13:11:18    

Taiche a écrit :


Avec le password direct en clair dans l'URL, j'adore [:david bowie]


 
Oui, je sais, j'ai pas dit que le serveur etait sécurisé, c'est "old fashion!"  
 

Reply

Marsh Posté le 30-07-2003 à 13:11:56    

*Syl* a écrit :

Pour IE, j'vois pas comment tu peux être authentifié puisque t'as pas la ligne Authorization dans la requête.. :heink:  


 
Ben avec IE je ne l'ai pas non plus !?!  :pt1cable:

Reply

Marsh Posté le 30-07-2003 à 14:16:05    

therier a écrit :


 
Ben avec IE je ne l'ai pas non plus !?!  :pt1cable:  

Bah c'est que t'as pas chopé la bonne requête sinon ça marcherait pas [:spamafote]

Reply

Marsh Posté le 30-07-2003 à 14:22:37    

*Syl* a écrit :

Bah c'est que t'as pas chopé la bonne requête sinon ça marcherait pas [:spamafote]  


 
Si si...
 
y a rien, je sais pas comment ca devrait etre encodé, c pas spécifié dans la RFC http://www.ietf.org/rfc/rfc2396.txt
 
"Some URL schemes use the format "user:password" in the userinfo
   field. This practice is NOT RECOMMENDED, because the passing of
   authentication information in clear text (such as URI) has proven to
   be a security risk in almost every case where it has been used."  :D

Reply

Marsh Posté le 30-07-2003 à 14:34:56    

Sinon, p'têt que USER et PASSWORD contiennent des caractères qui ne sont pas UTF-7, auquel cas c'est normal que ça marche sous IE et pas en Java direct. Il faut alors utiliser java.net.URLEncoder.encode() sur les variables USER et PASSWORD. Sinon j'vois pas...


---------------
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.
Reply

Marsh Posté le 30-07-2003 à 14:34:56   

Reply

Marsh Posté le 30-07-2003 à 17:29:28    

Ayet!!!
 
G trouvé, il suffisait de creer un Authenticator du style:
 

Code :
  1. Authenticator.setDefault(new Authenticator() {  protected PasswordAuthentication getPasswordAuthentication() {
  2.        return new PasswordAuthentication("USER", new char[] { 'P', 'A', 'S', 'S', 'W', 'O', 'R', 'D' });
  3. }
  4. });


 
 
C'est lui qui gère la double demande d'authentification en fait!
 
Merci d'avoir pris quelques minutes pour me repondre...

Reply

Marsh Posté le 31-07-2003 à 09:06:12    

merci à toi de donner la solution :jap:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 31-07-2003 à 09:25:40    

DarkLord a écrit :

merci à toi de donner la solution :jap:


 
Normal!  :p  
 
En plus c'est pas top documenté dans le JDK je trouve cette histoire, j'ai un peu trouvé par hasard...  :heink:  

Reply

Marsh Posté le 31-07-2003 à 09:28:40    

therier a écrit :


 
Normal!  :p  


 
si tu savais le nombre de cakes qui postent "laisser tomber j'ai toruvé"
 
c'est d'un frustrant :fou:


---------------
Just because you feel good does not make you right
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed