URL du format : http://LOGIN:PASSWORD@ma-machi ne [RESOLU] [JAVA] - Java - Programmation
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
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. |
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...
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..
Marsh Posté le 30-07-2003 à 12:13:05
therier a écrit : |
Avec le password direct en clair dans l'URL, j'adore
Marsh Posté le 30-07-2003 à 13:11:18
Taiche a écrit : |
Oui, je sais, j'ai pas dit que le serveur etait sécurisé, c'est "old fashion!"
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.. |
Ben avec IE je ne l'ai pas non plus !?!
Marsh Posté le 30-07-2003 à 14:16:05
therier a écrit : |
Bah c'est que t'as pas chopé la bonne requête sinon ça marcherait pas
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 |
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."
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...
Marsh Posté le 30-07-2003 à 17:29:28
Ayet!!!
G trouvé, il suffisait de creer un Authenticator du style:
Code :
|
C'est lui qui gère la double demande d'authentification en fait!
Merci d'avoir pris quelques minutes pour me repondre...
Marsh Posté le 31-07-2003 à 09:06:12
merci à toi de donner la solution
Marsh Posté le 31-07-2003 à 09:25:40
DarkLord a écrit : merci à toi de donner la solution |
Normal!
En plus c'est pas top documenté dans le JDK je trouve cette histoire, j'ai un peu trouvé par hasard...
Marsh Posté le 31-07-2003 à 09:28:40
therier a écrit : |
si tu savais le nombre de cakes qui postent "laisser tomber j'ai toruvé"
c'est d'un frustrant
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