Hello et bonne année !
Je cherche à récupérer un fichier sur un serveur https (ma banque) qui requiert un id de session fourni via cookie. J'ai "écouté" les requêtes et réponses http via le plugin "Temper Data" de firefox. Avec ces données je cherche à re créer la meme requête ds mon code java pour obtenir le cookie de session.
Voici mon code java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
DefaultHttpClient httpclient = new DefaultHttpClient();
String uri = "https://particuliers.secure.lcl.fr/everest/UWBI/UWBIAccueil?DEST=IDENTIFICATION";
HttpPost httpost = new HttpPost(uri);
 
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("agenceId", "5300"));
nvps.add(new BasicNameValuePair("compteId", "549011f"));
nvps.add(new BasicNameValuePair("CodeId", "6G72qs"));
nvps.add(new BasicNameValuePair("x", "26"));
nvps.add(new BasicNameValuePair("y", "4"));
 
httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
 
httpost.addHeader("Host","particuliers.secure.lcl.fr");
httpost.addHeader("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)");
httpost.addHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
httpost.addHeader("Accept-Language","fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3");
httpost.addHeader("Accept-Encoding","gzip,deflate");
httpost.addHeader("Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.7");
httpost.addHeader("Keep-Alive","300");
httpost.addHeader("Connection","keep-alive");
httpost.addHeader("Referer","https://particuliers.secure.lcl.fr/index.html");
httpost.addHeader("Cookie","aklBlocage=NON; aklGeneralisation=NON; aklVersionActivex=1.2.39; xtan=-; xtant=1");
 
HttpResponse response = httpclient.execute(httpost);
et voici la requête entre firefox et la banque (id et mot de passe maquillés ) que je cherche à reproduire :

19:48:07.424[637ms][total 670ms] État: 200[OK]
POST
https://particuliers.secure.lcl.fr/e...IDENTIFICATION
Indicateurs
chargement[LOAD_DOCUMENT_URI LOAD_INITIAL_DOCUMENT_URI ]
Taille contenu[-1]
Type Mime[text/html]
En-têtes requête:
Host[particuliers.secure.lcl.fr]
User-Agent[Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)]
Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
Accept-Language[fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3]
Accept-Encoding[gzip,deflate]
Accept-Charset[ISO-8859-1,utf-8;q=0.7,*;q=0.7]
Keep-Alive[300]
Connection[keep-alive]
Referer[https://particuliers.secure.lcl.fr/index.html]
Cookie[aklBlocage=NON; aklGeneralisation=NON; aklVersionActivex=1.2.39; xtan=-; xtant=1]
Données POST:
agenceId[2945]
compteId[324363]
CodeId[354120]
x[43]
y[4]
En-têtes réponse:
Date[Sat, 02 Jan 2010 18:48:36 GMT]
Server[Apache]
Pragma[No-cache]
Cache-Control[no-cache]
Content-Type[text/html;charset=ISO-8859-1]
Content-Language[en]
X-Cache[MISS from particuliers.secure.lcl.fr]
Via[1.1 particuliers.secure.lcl.fr]
Set-Cookie[wasnatib2-2Node01Cell_wasnatib2-2Node01_cliclisa4=0006L6d4v-9ZiBLpn:-1; Path=/; Domain=.secure.lcl.fr; Secure]
Keep-Alive[timeout=30, max=1000]
Connection[Keep-Alive]
Transfer-Encoding[chunked]
Sauf que j'obtiens un message d'erreur "Peer not authenticated" :
Exception in thread "main" javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(Unknown Source)
at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)
at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:339)
at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:123)
at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:147)
at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:108)
at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:641)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:576)
at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:554)
at org.apache.http.examples.client.LclConnectionTest2.main(LclConnectionTest2.java:122)
==> c'est comme si la banque refusait de monter une connexion https ???? des idées ? quelqu'un à déjà fait ça ? (les tuto sont plutot rares sur ce sujet...)