Bonjour,
Dans le cadre d'un projet je dois parcourir un site web grâce à une application Java.
Je me connecte à une page d'authentification grâce à cette fonction :
Puis j'utilise cette fonction pour mon authentification :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39 /** * Permet de créer une connexion https en acceptant les certificats * @param url L'url de la page. */ public URLConnection httpsConnection(String url) { URLConnection conn = null; try{ //Remplace le vérifieur de nom d'hôte par un autre moins restrictif HostnameVerifier hostnameVerifier=new HostnameVerifier(){ public boolean verify(String urlHostName,SSLSession session){ return true; } }; HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier); //Remplace le vérifieur de certificat par un autre moins restrictif TrustManager[] trustAllCerts=new TrustManager[]{ new X509TrustManager(){ public java.security.cert.X509Certificate[] getAcceptedIssuers(){return null;} public void checkClientTrusted(java.security.cert.X509Certificate[] certs,String authType){} public void checkServerTrusted(java.security.cert.X509Certificate[] certs,String authType){} } }; SSLContext sslContext=SSLContext.getInstance("SSL"); sslContext.init(null,trustAllCerts,new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory()); //Chargement de la page... conn = new URL(url).openConnection(); System.out.println("Connexion au serveur ("+url+")..."); }catch(Exception ex){ System.err.println(ex); } System.out.println("Connexion réussie!"); return conn; }
Je pense que le POST ne fonctionne pas car le texte de la page après le POST est toujours le même qu'avant le post.
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
26
27
28 public String loghttps(URLConnection conn, String login, String password) throws Exception { String server ="https://cas.univ-bpclermont.fr/cas/login?service=http://ent.univ-bpclermont.fr/Login"; HttpsURLConnection uc =(HttpsURLConnection) new URL(server).openConnection(); uc.setDoOutput(true); uc.setRequestMethod("POST"); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(uc.getOutputStream())); String query=""; query += URLEncoder.encode("username")+ "="+ URLEncoder.encode(login); query +="&"; query += URLEncoder.encode("password")+ "=" + URLEncoder.encode(password); bw.write(query); bw.write("\r\n"); bw.flush(); bw.close(); InputStream is = uc.getInputStream(); BufferedReader rd = new BufferedReader(new InputStreamReader(is)); String line; StringBuffer response = new StringBuffer(); while((line = rd.readLine()) != null) { response.append(line); response.append('\r'); } rd.close(); return response.toString(); }
Merci d'éclairer ma lanterne![]()
Partager