a0001 LOGIN user at domain.test "abra ca dabra" - проблемы из-за пробелов в пароле
Igor Sysoev
is at rambler-co.ru
Sat Aug 18 16:27:09 MSD 2007
On Sat, Aug 18, 2007 at 03:39:44PM +0400, umask wrote:
> Есть сервер с Cyrus IMAP. Телнетом логинюсь под пользователем:
>
> $ telnet localhost 143
>
> Connected to localhost
>
> Escape character is '^]'.
>
> * OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS] test.XXXXX.ru Cyrus IMAP4 v2.3.7 server ready
>
> a0001 LOGIN user at domain.test "password abcd ."
>
> a0001 OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID LOGINDISABLED ACL RIGHTS=kxte QUOTA MAILBOX-REFERRALS NAMESPACE UIDPLUS NO_ATOMIC_RENAME UNSELECT CHILDREN MULTIAPPEND BINARY SORT SORT=MODSEQ THREAD=ORDEREDSUBJECT THREAD=REFERENCES ANNOTATEMORE CATENATE CONDSTORE IDLE URLAUTH] User logged in
>
> ^]
>
> telnet> quit
>
> Connection closed.
>
>
>
>
>
> Вот такая попытка:
>
>
>
> $ telnet localhost 143
>
> Connected to localhost
>
> Escape character is '^]'.
>
> * OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS] test.XXXXX.ru Cyrus IMAP4 v2.3.7 server ready
>
> a0001 LOGIN user at domain.test password abcd .
>
> a0001 BAD Unexpected extra arguments to LOGIN
>
> ^]
>
> telnet> quit
>
> Connection closed.
>
>
>
>
>
>
>
> Теперь делаю всё тоже самое, но через nginx IMAP4 proxy (nginx - frontend, cyrus imap - backend):
>
>
>
> $ telnet localhost 1143
>
> Connected to localhost.
>
> Escape character is '^]'.
>
> * OK IMAP4 ready
>
> a0001 LOGIN user at domain.test password abcd .
>
> a0001 BAD invalid command
>
> ^]
>
> telnet> quit
>
> Connection closed.
>
>
>
> или так:
>
>
>
> $ telnet localhost 1143
>
> Connected to localhost.
>
> Escape character is '^]'.
>
> * OK IMAP4 ready
>
> a0001 LOGIN user at domain.test "password abcd ."
>
> a0001 BAD invalid command
>
> ^]
>
> telnet> quit
>
> Connection closed.
>
>
>
> При этом nginx вообще не делает обращения к внешнему серверу аторизации (вижу по access.log веб-сервера, где работает PHP-скрипт).
>
>
>
> В логе nginx пишет только следующее:
>
> 2007/08/18 15:23:35 [info] 15810#0: *244187 client 127.0.0.1 connected to 127.0.0.1:1143
>
> 2007/08/18 15:32:20 [info] 15810#0: *244195 client 127.0.0.1 connected to 127.0.0.1:1143
>
>
>
> и более ничего.
>
>
>
> С юзерами, у которых нет пробела в пароле всё работает замечательно как через nginx, так и без него.
Патч должен помочь, применим для любой версии.
--
Игорь Сысоев
http://sysoev.ru
-------------- next part --------------
Index: src/mail/ngx_mail_parse.c
===================================================================
--- src/mail/ngx_mail_parse.c (revision 724)
+++ src/mail/ngx_mail_parse.c (working copy)
@@ -434,6 +434,10 @@
break;
case sw_argument:
+ if (ch == ' ' && s->quoted) {
+ break;
+ }
+
switch (ch) {
case '"':
if (!s->quoted) {
More information about the nginx-ru
mailing list