Подключитесь к gmail (используя imap и javamail) с зашифрованным паролем - PullRequest
3 голосов
/ 03 марта 2011

Я пытаюсь подключиться к Gmail с помощью простой Java-программы (, как эта ).Но мой вопрос:

Есть ли способ сделать это с зашифрованным паролем, а не с реальным паролем, из соображений безопасности, конечно!что-то вроде как мы делаем в java-Oracle db?

1 Ответ

4 голосов
/ 03 марта 2011

По умолчанию единственным механизмом аутентификации для IMAP является команда LOGIN , которая принимает незашифрованное имя пользователя и пароль.Вы можете добавить слой шифрования поверх него, либо подключившись через IMAP, либо запустив слой TLS с помощью команды STARTTLS, но для этого все равно требуется, чтобы клиент знал пароль в виде открытого текста.

При желании сервер можеттакже предоставьте методы аутентификации SASL, вызываемые через команду AUTHENTICATE .Сервер объявляет, какие механизмы SASL он поддерживает, в своем ответе на команду CAPABILITY.Например, если сервер поддерживает функцию «AUTH=PLAIN», клиент может использовать метод аутентификации PLAIN SASL с помощью команды AUTHENTICATE PLAIN IMAP.

Gmail поддерживает только один механизм аутентификации SASL, XOAUTH:

C: 1 capability
S: * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA XLIST CHILDREN XYZZY
      SASL-IR AUTH=XOAUTH
S: 1 OK Thats all she wrote! dv32if2169247ibb.17

XOAUTH - это нестандартный механизм аутентификации SASL, использующий OAuth.(Символ «X» означает, что он не стандартизирован.) Google опубликовал документ, определяющий механизм XOAUTH SASL .Они также предоставили пакет google-mail-xoauth-tools , который включает в себя пример кода, показывающий, как использовать JavaMail с Gmail через XOAUTH.

...