Re: a0001 LOGIN user at domain .test "abra ca dabra" - проблемы из-за пробел ов в пароле

umask umask at yandex.ru
Mon Aug 20 09:51:46 MSD 2007


Доброе утро,



Игорь, а ещё есть такая проблемная строка логина:



a0001 LOGIN user at domain.test " 12345"



Cyrus IMAP и DBMail напрямую принимают такую команду нормально и логин проходит, а вот если логин происходит через nginx, то проблема проявляет себя несколько иначе, чем раньше: в лог nginx пишет ошибка авторизации, а на внешнем сервере авторизации пароль получается без пробела.



Видимо в HTTP-сессии к внешнему серверу авторизации надо как-то экранировать пароль... (и логин, возможно).





18.08.07, 23:44, umask <umask at yandex.ru>:



> > 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, так и без него.

> > Патч должен помочь, применим для любой версии.

> Спасибо, Игорь, патч помог.

> --

> Ilyas R. Khasyanov





More information about the nginx-ru mailing list