Tout d'abord bonjour à la communauté,
Voila mon problème est assez simple, je dévellope un website en JSP, sur ce site j'ai une page index qui gère l'authentification, dans cette page je demande une login et un password, que je soumet à un serveur https, si le login est le password match alors la connection sur mon site est validée, le cas échant elle est refusée.
Mon problème est le suivant dés que je démarre mon serveur tomcat depuis eclipse tout marche bien, si j'entre un mauvais mot de passe je me fait rejeter par contre si je rentre le bon mot de passe je suis logger.
Où est le problème ? En fait une foit qu'un utilisateur s'est logger correctement si j'ouvre une 2 ieme session quel que soit le login et le password la connection est accepté .....
Je doit redémarrer mon serveur tomcat pour que tout les mots de passes incorrect soit refusées et le problème se reproduit aprés chaque login effectué correctement.
Voici la fonction que j'utilise :
J'ai vraimment l'impression que une sorte de session ou de connection ne se ferme pas naturellement et du coup tant qu'elle est validé je ne prend même pas en compre les nouveaux logins et passwords fournies..... ce qui est assez génant
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 public static boolean TestUserConnection(String urlToGet, String login, String password) throws Exception { TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() { public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } public void checkClientTrusted(X509Certificate[] certs, String authType) { } public void checkServerTrusted(X509Certificate[] certs, String authType) { } } }; SSLContext sc = SSLContext.getInstance("SSL"); sc.init(null, trustAllCerts, new java.security.SecureRandom()); HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); System.setProperty("http.maxRedirects", "2"); System.setProperty("https.maxRedirects", "2"); System.setProperty("http.keepAlive ", "false"); System.setProperty("https.keepAlive ", "false"); Authenticator.setDefault(new MyAuthenticator(login,password)); try{ URL url = new URL(urlToGet); BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); if ((in.readLine()) != null) { return true; } } catch (Exception e) { return false; } return false; }
Le but de ma fonction serait de demandé au serveur https si ce login et password sont correct et une fois la réponse obtenu ( un boolean ici) je voudrai fermer la connection de facon a pouvoir réessayer 2 sec aprés avec un autre login.
Si quelqu'un pourrait m'expliquer ou me donné un début de piste ca m'aiderait bcp.
Merci d'avance à ceux qui essayeront de m'eclairer
Partager