3 Stimmen

Ungültige Anmeldeinformationen (Fehler) für OAuth bei Verwendung des durch Java-Code generierten Tokens.

Ich versuche, OAuth zu verwenden, um auf meinen Posteingang zuzugreifen. Ich erhalte immer einen Fehler mit ungültigen Anmeldedaten, wenn ich den Token verwende, der mit meinem JAVA-Code generiert wurde. Ich verwende IMAP und übergebe den OAuth-Token zur Authentifizierung. Wenn ich jedoch den Token mit Python generiere und im Code verwende, funktioniert es einwandfrei und ruft E-Mails aus meinem Posteingang ab.

Hier ist der Codeausschnitt unter Verwendung von IMAP:

public static IMAPSSLStore connectToImap(String host,
                                          int port,
                                          String userEmail,
                                          String oauthToken,
                                          String oauthTokenSecret,
                                          OAuthConsumer consumer,
                                          boolean debug) throws Exception {
   Properties props = new Properties();
   props.put("mail.imaps.sasl.enable", "true");
   props.put("mail.imaps.sasl.mechanisms", "XOAUTH");
   props.put(XoauthSaslClientFactory.OAUTH_TOKEN_PROP,
             oauthToken);
   props.put(XoauthSaslClientFactory.OAUTH_TOKEN_SECRET_PROP,
             oauthTokenSecret);
   props.put(XoauthSaslClientFactory.CONSUMER_KEY_PROP,
             consumer.consumerKey);
   props.put(XoauthSaslClientFactory.CONSUMER_SECRET_PROP,
             consumer.consumerSecret);
   Session session = Session.getInstance(props);
   session.setDebug(debug);

   final URLName unusedUrlName = null;
   IMAPSSLStore store = new IMAPSSLStore(session, unusedUrlName);
   final String emptyPassword = "anonymous";

   store.connect(host, port, userEmail, emptyPassword);
   return store;
 }

Hier ist das Fehlerprotokoll -

DEBUG: setDebug: JavaMail-Version 1.3.3
1
2
DEBUG: mail.imap.fetchsize: 16384
DEBUG: SASL aktivieren
DEBUG: Erlaubte SASL-Mechanismen: XOAUTH
3
4
* OK Gimap bereit für Anfragen von 122.179.85.133 kn10if6680532igc.14
A0 FÄHIGKEIT
* FÄHIGKEIT IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH
A0 OK Thats all she wrote! kn10if6680532igc.14
IMAP DEBUG: AUTH: XOAUTH
DEBUG: Protokoll-Verbindung, login, host=imap.googlemail.com, user=me@mydomain.com, password=
IMAP SASL-DEBUG: Mechanismen: XOAUTH
IMAP SASL-DEBUG: SASL-Client XOAUTH
A1 AUTHENTIFIZIEREN XOAUTH
+ 
IMAP SASL-DEBUG: Herausforderung:  :
IMAP SASL-DEBUG: Callback-Länge: 1
IMAP SASL-DEBUG: Callback 0: javax.security.auth.callback.NameCallback@d1e832
IMAP SASL-DEBUG: Antwort: GET https://mail.google.com/mail/b/me@mydomain.com/imap/ oauth_signature_method="HMAC-SHA1",oauth_token="1%2Furn42qGc5mpD3BwVvJMzeVkHl_9iVRCZvaSOYmKNH5A",oauth_consumer_key="mydomain.com",oauth_timestamp="1329301212",oauth_nonce="629121335212995",oauth_version="1.0",oauth_signature="7O1YHXywiqOX8XzSAd%2BzbmDoBVw%3D" :
R0VUIGh0dHBzOi8vbWFpbC5nb29nbGUuY29tL21haWwvYi9wZXRlckBhMm9tb2JpbGUuY29tL2ltYXAvIG9hdXRoX3NpZ25hdHVyZV9tZXRob2Q9IkhNQUMtU0hBMSIsb2F1dGhfdG9rZW49IjElMkZ1cm40MnFHYzVtcEQzQndWdkpNemVWa0hsXzlpVlJDWnZhU09ZbUtOSDVBIixvYXV0aF9jb25zdW1lcl9rZXk9ImEyb21vYmlsZS5jb20iLG9hdXRoX3RpbWVzdGFtcD0iMTMyOTMwMTIxMiIsb2F1dGhfbm9uY2U9IjYyOTEyMTMzNTIxMjk5NSIsb2F1dGhfdmVyc2lvbj0iMS4wIixvYXV0aF9zaWduYXR1cmU9IjdPMVlIWHl3aXFPWDhYelNBZCUyQnpibURvQlZ3JTNEIg==
5
DEBUG: Verbindung verfügbar -- Größe: 1
A2 INBOX PRÜFEN
A1 NEIN [ALARM] Ungültige Anmeldeinformationen (Fehler)
A2 SCHLECHT Unbekannter Befehl r5if6689112igo.50
A3 AUSLOGGEN
* BYE Logout angefordert r5if6689112igo.50
A3 OK Quoth the raven, nevermore... r5if6689112igo.50
Ausnahme im Thread "main" javax.mail.MessagingException: A2 SCHLECHT Unbekannter Befehl r5if6689112igo.50;
  eingebettete Ausnahme ist:
    com.sun.mail.iap.BadCommandException: A2 SCHLECHT Unbekannter Befehl r5if6689112igo.50
    at com.sun.mail.imap.IMAPFolder.open(IMAPFolder.java:820)
    at com.a2o.service.collaboration.common.XoauthAuthenticator.getMessages(XoauthAuthenticator.java:238)
    at com.a2o.service.collaboration.common.XoauthAuthenticator.main(XoauthAuthenticator.java:205)

Gibt es einen Weg, um den Token richtig aus dem JAVA-Code zu generieren. Meine tatsächliche Anforderung besteht darin, den Token mit meinem iPad-Client zu generieren und E-Mails mit diesem Token auf meinem Server abzurufen. Jede Hilfe wird sehr geschätzt.

0voto

user1223379 Punkte 91

Wir haben http://pastebin.com/kwcZQcvj verwendet, um Token und Geheimnis zu erstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X