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