IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Java Discussion :

authentification httpsurlconnection ne marche pas


Sujet :

Sécurité Java

  1. #1
    Membre régulier
    Inscrit en
    Octobre 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 160
    Points : 77
    Points
    77
    Par défaut authentification httpsurlconnection ne marche pas
    Bonjour ,
    J'essaie depuis des jours de s'authentifier à un serveur distant via un module Java.
    Le but est de récupérer le cookie pour le réutiliser pour accéder aux autres pages du site.
    Voilà le code :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
     
     
    String targetURL = "https://dddddddd";
     String urlParameters =URLEncoder.encode("j_username","UTF-8")+"="+URLEncoder.encode(login, "UTF-8")+"&"+URLEncoder.encode("j_password", "UTF-8")+"="+URLEncoder.encode(pwd, "UTF-8")+"&"+URLEncoder.encode("rememberMe", "UTF-8")+"="+URLEncoder.encode("on", "UTF-8")+"&"+URLEncoder.encode("langCode", "UTF-8")+"="+URLEncoder.encode("fra", "UTF-8")+"&"+URLEncoder.encode("lang", "UTF-8")+"="+URLEncoder.encode("fra", "UTF-8"));
     
     
    /		System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol");
    //		java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); 
     
    		String cuki=new String();
     
    	    URL url;
    	    System.out.println("urlParameters  :  "+urlParameters);
    	    HttpURLConnection connection = null;  
    	    try {
    	      //Create connection
    //	    	SSLContext sslctx = SSLContext.getInstance("SSL");
    //	         sslctx.init(null, new X509TrustManager[] { new MyTrustManager() }, null);
     
    //	HttpURLConnection.setDefaultSSLSocketFactory(sslctx.getSocketFactory());
    	         //HttpsURLConnection.setDefaultHostnameVerifier(newMyHostnameVerifier());
    //	         Authenticator.setDefault(new MyAuthenticator());
    	      url = new URL(targetURL);
    	      connection = (HttpURLConnection)url.openConnection();
    	      connection.setDoInput(true);
    	      connection.setDoOutput(true);
    //	      String cookieHeader = connection.getHeaderField("set-cookie"); 
    //	      if(cookieHeader != null) { 
    //	      int index = cookieHeader.indexOf(";"); 
    //	      if(index >= 0) 
    //	      cuki = cookieHeader.substring(0, index); 
    //	      connection.setRequestProperty("Cookie", cuki); 
    //	      }
     
    //	      connection.setHostnameVerifier(HttpsURLConnection.getDefaultHostnameVerifier());
     
    //	        if (connection instanceof HttpsURLConnection) {  
    //	    	         try {  
    //	    	         KeyManager[] km = null;  
    //	    	         TrustManager[] tm = {new RelaxedX509TrustManager()};  
    //	    	         SSLContext sslContext = SSLContext.getInstance("SSL");  
    //	    	         sslContext.init(null, tm, new java.security.SecureRandom());  
    //	    	         SSLSocketFactory sf = sslContext.getSocketFactory();  
    //	    	         ((HttpsURLConnection)connection).setSSLSocketFactory(sf);  
    //	    	         }  
    //	    	         catch (java.security.GeneralSecurityException e) { throw new IOException(e.getMessage()); }  
    //	    	         }   
     
     
    	      connection.setRequestProperty("Content-Type", 
    	           "application/x-www-form-urlencoded");
    	      connection.setRequestProperty("Connection" ,"keep-alive");
    //	      connection.setRequestProperty("Server" ,"Oracle-Application-Server-10g");
    	      connection.setRequestProperty("Host", "xxxxx");
    	      connection.setRequestProperty("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
    	      connection.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
    	      connection.setRequestProperty("Accept-Language", "en-us,en;q=0.5");
    	      connection.setRequestProperty("Accept-Encoding","gzip,deflate");
    	      connection.setRequestProperty("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 GTB7.1 ( .NET CLR 3.5.30729)");
    		  connection.setRequestProperty("REFERER","xxxxxxx");
    	      connection.setRequestProperty("keep-alive", "timeout=15, max=100");
    	      connection.setRequestProperty("Cookie","xxxx");
    	      connection.setRequestProperty("Content-Length", "" + 
    	               Integer.toString(urlParameters.getBytes().length));
    //	      connection.setRequestProperty("Content-Language", "en-US");  
    	      connection.setAllowUserInteraction(false);
    	      connection.setUseCaches (false);
     
    	      connection.setRequestMethod("POST");
              connection.setInstanceFollowRedirects(true);      
     
     
     
     
    	      connection.connect();
     
     
    	      //Send request
    	      OutputStreamWriter wr = new OutputStreamWriter  (
    	                  connection.getOutputStream ());
    	      wr.write(urlParameters);
    	      wr.flush ();
     
    	      readCookies( connection );
     
    	      if(connection.getResponseCode() == 200) {
    	          System.out.println("Worked");
    	        } else {
    	          System.out.println("Didn't work");
    	        }
     
    	      //Get Response	
    	      InputStream is = connection.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');
    	      }
    	      wr.close ();
    	      rd.close();
     
    	      return response.toString();
     
    	    } catch (Exception e) {
     
    	      e.printStackTrace();
    	      return null;
     
    	    } finally {
     
    	      if(connection != null) {
    	        connection.disconnect(); 
    	      }
    	    }
    	  }

    J'ai vraiment tout essayé.. mais je reçois toujours la page de login avec un message dedans qui dit que le login et mot de passe doivent être les deux mentionnés !!

    Avez vous une piste ?

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    J'ai déjà eu à faire ce genre de chose. Le plus simple est d'utiliser HTTPClient de Jakarta.
    Sur le site officiel, il y a notamment des exemples pour l'authentification.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre régulier
    Inscrit en
    Octobre 2007
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 160
    Points : 77
    Points
    77
    Par défaut
    Merci pour ton aide !
    Effectivement je suis entrain de regarder ça, pas evident non plus..
    As tu un bout de code ?


    thank u

Discussions similaires

  1. L'authentification ne marche pas sur firefox
    Par NoWorks dans le forum Apache
    Réponses: 1
    Dernier message: 21/06/2013, 22h28
  2. Authentification web ne marche pas
    Par glacebrulee dans le forum NetBeans
    Réponses: 0
    Dernier message: 05/01/2013, 16h40
  3. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  4. Réponses: 9
    Dernier message: 07/05/2003, 12h57
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo