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" - проблемы из-за пробел ов в пароле
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, так и без него.
Патч должен помочь, применим для любой версии.
--
Игорь Сысоев
http://sysoev.ru
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) {
|