Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: a0001 LOGIN user@domain .test "abra ca dabra" - проблемы из-за пробел ов в пароле
Доброе утро,
Игорь, а ещё есть такая проблемная строка логина:
a0001 LOGIN user@xxxxxxxxxxx " 12345"
Cyrus IMAP и DBMail напрямую принимают такую команду нормально и логин
проходит, а вот если логин происходит через nginx, то проблема проявляет себя
несколько иначе, чем раньше: в лог nginx пишет ошибка авторизации, а на внешнем
сервере авторизации пароль получается без пробела.
Видимо в HTTP-сессии к внешнему серверу авторизации надо как-то экранировать
пароль... (и логин, возможно).
18.08.07, 23:44, umask <umask@xxxxxxxxx>:
> > 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@xxxxxxxxxxx "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@xxxxxxxxxxx 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@xxxxxxxxxxx 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@xxxxxxxxxxx "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
|