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

API standards et tierces Java Discussion :

[javamail] [imap] probleme d'authentificat°


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut [Résolu][javamail] [imap] probleme d'authentificat°
    Bonjour,

    je souhaites accèder à une boite mail sur un serveur IMAP avec JAVA.
    J'ai trouvé plusieurs exemples qui fonctionnes pour l'envois mais concernant la lecture je doit m'identifier et là j'ai une exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    javax.mail.AuthenticationFailedException: AUTHENTICATE invalid user name or password
    sur la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    store.connect(host, username, password);
    pourtant mes arguments sont corrects puisque ça fonctionne avec Outlook par exemple.

    J'ai vu qu'il y avait des certificats sur nos postes :
    clé publique : RSA (1024 Bits)
    Algorithme de signature : md5RSA
    ...

    donc il doit falloir les utiliser j'imagine, mais je ne sais pas comment.

    quelqu'un aurait une idée ou un exemple, merci

  2. #2
    Membre habitué
    Inscrit en
    Octobre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 10
    Par défaut
    Bonjour,

    petite question : quel est le type de ta variable store?

    De plus, je ne vois pas bien ce que tu veux faire. Mais pour me frotter aux certificats en ce moment, je peux te dire que c'est loin d'etre evident.
    Dans les tutoriaux, tu en as un qui te montre l'utilisation de la bibliotheque BouncyCastle qui est très bien fait, et qui pose les bases de l'utilisation de certificat dans le cadre de la signature électronique. Tu peux déjà commencer par le faire/regarder pour comprendre les certificats.
    http://nyal.developpez.com/tutoriel/java/bouncycastle/

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut
    Bonsoir

    pour avoir plus d'info peux tu positionner la property de la session javamail
    mail.debug=true et mail.imap.debug=true

    Ci-dessous un exemple de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Properties prop=new Properties();
    prop.setProperty("mail.smtp.from",smtpHost);
    prop.setProperty("mail.debug","true");
    prop.setProperty("mail.imap.debug","true");
    Session session = Session.getInstance(prop);
    Store s = session.getStore("imap");
    s.connect(imapServer, user.getLogin(), user.getPassword());

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut
    Bonjour, merci pour ces premières réponses.

    voici pour willy78 :
    j'ai exécuté le bout de code indiqué et voici le résultat
    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
    DEBUG: JavaMail version 1.3.3ea
    DEBUG: java.io.FileNotFoundException: C:\j2sdk1.4.2_05\jre\lib\javamail.providers (Le fichier spécifié est introuvable)
    DEBUG: !anyLoaded
    DEBUG: not loading resource: /META-INF/javamail.providers
    DEBUG: successfully loaded resource: /META-INF/javamail.default.providers
    DEBUG: Tables of loaded providers
    DEBUG: Providers Listed By Class Name: {com.sun.mail.smtp.SMTPSSLTransport=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], com.sun.mail.smtp.SMTPTransport=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc], com.sun.mail.imap.IMAPSSLStore=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3SSLStore=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], com.sun.mail.imap.IMAPStore=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], com.sun.mail.pop3.POP3Store=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc]}
    DEBUG: Providers Listed By Protocol: {imaps=javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc], imap=javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc], smtps=javax.mail.Provider[TRANSPORT,smtps,com.sun.mail.smtp.SMTPSSLTransport,Sun Microsystems, Inc], pop3=javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Sun Microsystems, Inc], pop3s=javax.mail.Provider[STORE,pop3s,com.sun.mail.pop3.POP3SSLStore,Sun Microsystems, Inc], smtp=javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]}
    DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
    DEBUG: !anyLoaded
    DEBUG: not loading resource: /META-INF/javamail.address.map
    DEBUG: java.io.FileNotFoundException: C:\j2sdk1.4.2_05\jre\lib\javamail.address.map (Le fichier spécifié est introuvable)
    DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc]
    DEBUG: mail.imap.fetchsize: 16384
    * OK Domino IMAP4 Server Release 6.0.2CF2 HFB2 PSA_2 THTO68YUBB TTRT69EUV5 THTO63SRTD MIAS6F4JQE ready Tue, 31 Jan 2006 10:15:32 +0100
    A0 CAPABILITY
    * CAPABILITY IMAP4rev1 AUTH=PLAIN LITERAL+ NAMESPACE QUOTA UIDPLUS
    A0 OK CAPABILITY completed
    IMAP DEBUG: AUTH: PLAIN
    A1 AUTHENTICATE PLAIN
    + 
    QkZvYXBfcABCRm9hcF9wAHB1cGl0cmU=
    A1 NO AUTHENTICATE invalid user name or password
    javax.mail.AuthenticationFailedException: AUTHENTICATE invalid user name or password
    at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:436)
    at javax.mail.Service.connect(Service.java:236)
    at javax.mail.Service.connect(Service.java:137)
    at test.Test.test(Test.java:37)
    at test.Test.main(Test.java:24)



    je vais regarder les
    java.io.FileNotFoundException
    et jetter un oeil sur le tuto de Skydoll

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut
    Bonjour

    Pour les file not found c'est normal.

    Par contre je n'ai pas les mêmes trace, cela doit dépendre du serveur:
    DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Sun Microsystems, Inc]
    DEBUG: mail.imap.fetchsize: 16384
    * OK dovecot ready.
    A0 CAPABILITY
    * CAPABILITY IMAP4rev1 SORT THREAD=REFERENCES MULTIAPPEND UNSELECT IDLE CHILDREN LISTEXT LIST-SUBSCRIBED NAMESPACE STARTTLS AUTH=PLAIN
    A0 OK Capability completed.
    A1 LOGIN willy pass
    A1 OK Logged in.
    Tu peux essayer en telnet sur le port 143 avec les commandes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    A0 CAPABILITY
    A1 LOGIN willy pass
    Sinon la je ne voit pas

  6. #6
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Par défaut
    salut,

    tu devrais pas dévoiler la clé que tu utilises pour ton serveur IMAP même s'il est fort possible que ce ne soit pas la bonne car s'il ne trouve pas le bon password ou le bon login c'est probablement parceque ta clé d'encryptage n'est pas celle qu'il faudrait.

    je parle de ce secret qui n'en ai plus un d'ailleurs :

    QkZvYXBfcABCRm9hcF9wAHB1cGl0cmU=

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut
    la connexion en telnet fonctionne :

    A0 OK CAPABILITY completed
    A1 OK LOGIN completed
    savez-vous ce que signifie la ligne suivante ? :
    A1 AUTHENTICATE PLAIN
    est-ce une autre commande que LOGIN pour s'identifier ? Le problème pourrait venir de là...?

  8. #8
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Par défaut
    j'ai pas l'impression que ton serveur utilise SSL pour authentifier la connexion.
    Si c'était le cas tu devrais avoir une ligne du genre :
    qui indique que l'envoi du login et du mot de passe vont être cryptés.
    J'ai l'impression que ta session se fait sans le cryptage.

  9. #9
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut
    oui je crois que tu as raison Mitje

    j'ai trouvé des infos dans la RFC 2060 pour comprendre un peu mieux le fonctionnement d'IMAP... mais je ne sais toujours pas pourquoi mon authentification ça ne fonctionne pas.

    Quelqu'un sait où je pourrais avoir des explications sur le fonctionnement de l'authentification de type PLAIN ?

    AUTHENTICATE PLAIN

  10. #10
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Par défaut
    il me vient une idée la :

    T'es sur que le port sur lequel tu fait ta connection est bien celui sur lequel il y a SSL. Parceque en général les serveurs imaps utilisent deux port différents pour des protocoles différents.
    En fait sur certians serveurs tu peux te connecter en PLAIN-TEXT (sans crypto) sur le port 143 et en SSL/TLS sur le port 993. Donc si tu essais de faire une connection sur le port 143 en utilisant SSL ça va foiré.

  11. #11
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut
    en fait le contraire m'aurais arrangé, mais là non.
    J'essaie de me connecter sans SSL car je ne sais pas comment le faire en JAVA, donc c'est bien le port 143 qui me convient.

    Voila où j'en suis :

    j'ai l'adresse d'un serveur IMAP, un compte et un password correct.
    - La connexion fonctionne depuis Outlook (sachant qu'il y a des certificats installés sur mon poste, est-ce qu'ils interviennent ?)
    - La connexion fonctionne en Telnet avec la commande LOGIN
    - La connexion (ou plutot l'identification) est refusée en Telnet avec la commande "Authenticate plain" car je ne sais pas sous qu'elle forme donner le compte/password.
    - L'identification ne fonctionne pas non plus depuis mon appli JAVA.

    ...

  12. #12
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 122
    Par défaut
    La connexion fonctionne depuis Outlook (sachant qu'il y a des certificats installés sur mon poste, est-ce qu'ils interviennent ?)
    Ils interviennent si tu fait un connection SSL seulement.

    il semble que la commande LOGIN s'utilise ainsi :

    LOGIN mylogin mypasswd

  13. #13
    Membre éprouvé

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Par défaut
    Bonjour

    Essaye de positioner les properties
    mail.imap.auth.login.disable=false pour forcer à utiliser la commande LOGIN
    et mail.imap.auth.plain.disable=true pour empecher la commande AUTHENTICATE PLAIN, sur la session

  14. #14
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 101
    Par défaut
    ça marche !!!
    grace à : "mail.imap.auth.plain.disable=true"

    merci pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [IMAP] probleme avec imap_open
    Par pilomption dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 23/10/2012, 16h05
  2. JavaMail & Imap : Obtenir la taille de la boîte mail en bytes
    Par PierreBroco dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 13/03/2012, 16h36
  3. probleme pop3 et imap
    Par klubbin dans le forum Réseau
    Réponses: 2
    Dernier message: 21/05/2007, 15h43
  4. [JavaMail]Probleme avec API JavaMail
    Par spk4ever dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 10/04/2006, 16h39
  5. [JavaMail] Problème de conversion JavaMail
    Par lapartdombre dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 21/03/2006, 13h22

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