Я видел некоторые серверы, которые возвращают
AUTH = LOGIN
, когда я запрашиваю ВОЗМОЖНОСТЬ сервера IMAP, например:
1 ВОЗМОЖНОСТЬ
ВОЗМОЖНОСТЬ IMAP4 IMAP4rev1 AUTH = LOGIN AUTH = PLAIN AUTH = XOAUTH2 SASL-IR UIDPLUS ID UNSELECT CHILDREN IDLE NAMESPACE LITERAL +
Как я могу найти дополнительную информацию о [11141649IN] и как я могу использовать его для входа непосредственно в консоль на сервере?
Я пробовал поискать в Google , но безуспешно. И я хотел бы реализовать этот формат входа в свой клиент IMAP JAVA.
Механизм LOGIN SASL очень похож на механизм PLAIN, но для аутентификации требуется два шага:
CLIENT: AUTH LOGIN
SERVER: VXNlcm5hbWU6
CLIENT: am9l
SERVER: UGFzc3dvcmQ6
CLIENT: bXkgc2VyY3JldA==
Который , после декодирования base64 преобразуется в:
CLIENT: AUTH LOGIN
SERVER: Username:
CLIENT: joe
SERVER: Password:
CLIENT: my secret
В спецификации говорится, что запросы от сервера должны быть Имя пользователя
и Пароль
, но:
Примечание. развернутый клиент, который требует чтобы строка запроса, передаваемая сервером, была «Имя пользователя:» и «Пароль:» соответственно. По этой причине сервер реализации МОГУТ отправлять эти строки запроса вместо тех перечислено выше.
Не используется шифрование / хеширование паролей, поэтому вы можете легко протестировать обе стороны, для незашифрованной связи используйте netcat
для зашифрованного openssl s_client
или openssl s_server
.
Обратите внимание, что в приведенном выше примере отсутствуют необходимые для использования протоколы, поскольку эта часть является общей для всех протоколов, которые могут вам понадобиться (SMTP / POP3 / IMAP ...). Фактическая связь по-прежнему должна соответствовать спецификациям протокола:
IMAP
1 AUTH LOGIN
VXNlcm5hbWU6
am9l
UGFzc3dvcmQ6
bXkgc2VyY3JldA==
SMTP
AUTH LOGIN
334 VXNlcm5hbWU6
am9l
334 UGFzc3dvcmQ6
bXkgc2VyY3JldA==
Это устаревшее нестандартное расширение. Он не указан в реестре IANA возможностей IMAP . Он исходит из устаревшего draft-murchison-sasl-login-00
(см. список схем аутентификации SASL IANA ).
Он не содержит никаких новых функций вместо существующей команды AUTH = PLAIN
или стандартной IMAP LOGIN
команды .