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 - Connexion impossible avec OAuth sur Gmail


Sujet :

API standards et tierces Java

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Points : 301
    Points
    301
    Par défaut JavaMail - Connexion impossible avec OAuth sur Gmail
    Bonjour,


    J'essaye de me connecter à gmail via oAuth.

    En ligne de commande, pas de soucis, mais par contre impossible via Java

    La source de l'exemple est disponible ici : https://code.google.com/p/google-mai...es/oauth2/?r=3

    Dernière modification en 2012 donc peut-être que ce code est obsolète ...

    En ligne de commande ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    openssl s_client -crlf -connect imap.gmail.com:993
    A002 AUTHENTICATE XOAUTH2
    +
    monrefreshtokenquiseterminepar__
    Response : A002 OK myaddress@gmail.com ForName Name authenticated (Success)
    Avez-vous déjà rencontré ce type de problème ?

    Pour information :
    - ça ne marche pas avec le Token "de base" ou avec le refresh token
    - voici les logs :

    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
     
    DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle]
    DEBUG IMAPS: mail.imap.fetchsize: 16384
    DEBUG IMAPS: mail.imap.ignorebodystructuresize: false
    DEBUG IMAPS: mail.imap.statuscachetimeout: 1000
    DEBUG IMAPS: mail.imap.appendbuffersize: -1
    DEBUG IMAPS: mail.imap.minidletime: 10
    DEBUG IMAPS: disable AUTH=LOGIN
    DEBUG IMAPS: disable AUTH=PLAIN
    DEBUG IMAPS: enable SASL
    DEBUG IMAPS: SASL mechanisms allowed: XOAUTH2
    DEBUG IMAPS: trying to connect to host "imap.gmail.com", port 993, isSSL true
     * OK Gimap ready for requests from 195.6.245.82 i1mb40455339wjn
    A0 CAPABILITY
     * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
    A0 OK Thats all she wrote! i1mb40455339wjn
    DEBUG IMAPS: AUTH: XOAUTH
    DEBUG IMAPS: AUTH: XOAUTH2
    DEBUG IMAPS: AUTH: PLAIN
    DEBUG IMAPS: AUTH: PLAIN-CLIENTTOKEN
    DEBUG IMAPS: protocolConnect login, host=imap.gmail.com, user=myaddress@gmail.com, password=<non-null>
    DEBUG IMAPS: SASL authentication command trace suppressed
    DEBUG IMAPS: SASL Mechanisms:
    DEBUG IMAPS:  XOAUTH2
    DEBUG IMAPS:
    DEBUG IMAPS: SASL client XOAUTH2
    DEBUG IMAPS: SASL callback length: 1
    DEBUG IMAPS: SASL callback 0: javax.security.auth.callback.NameCallback@45258dfd
    DEBUG IMAPS: SASL no response
    Exception : -->javax.mail.AuthenticationFailedException: [ALERT] Invalid credentials (Failure)      at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:715)      at javax.mail.Service.connect(Service.java:364)   at com.myproject.MailboxHelper.testMailboxWithOAuth(MailboxHelper.java:179)
    Merci d'avance.

    Cordialement.

  2. #2
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 387
    Points : 301
    Points
    301
    Par défaut
    Finalement cela fonctionne avec ces paramètres :
    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
     
    Properties props = new Properties();
    props.put("mail.imaps.ssl.enable", "true");
    props.put("mail.imaps.sasl.enable", "true");
    props.put("mail.imaps.sasl.mechanisms", "XOAUTH2");
    props.put("mail.imaps.auth.login.disable", "true");
    props.put("mail.imaps.auth.plain.disable", "true");
    props.put("mail.imaps.socketFactory", settings.getPort());
    props.put("mail.imaps.port", settings.getPort());
    props.put("mail.imaps.socketFactory.class" , "javax.net.ssl.SSLSocketFactory");
    props.put(OAuth2SaslClientFactory.OAUTH_TOKEN_PROP, oAuthToken);
     
    Session session = Session.getInstance(props, null);
    session.setDebug(true);
     
    Security.addProvider(new OAuth2Provider());
    Store store  = session.getStore("imaps");
    store.connect(settings.getHost(), settings.getPort(), address, oAuthToken);
    Ça fonctionne avec le token oAuth, pas avec le refresh token.

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/07/2013, 15h52
  2. Connexion Impossible Avec Le Serveur FTP
    Par MarocWare dans le forum Réseau
    Réponses: 3
    Dernier message: 28/02/2008, 16h08
  3. Connexion impossible avec une installation en site web
    Par DoRiane dans le forum Accès aux données
    Réponses: 4
    Dernier message: 06/07/2007, 14h27
  4. Connexion impossible avec Manager Grid 10 COntrol
    Par jesuscrie dans le forum Oracle
    Réponses: 3
    Dernier message: 23/03/2007, 12h43
  5. Réponses: 6
    Dernier message: 28/11/2005, 12h03

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