ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
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) {


 




Copyright © Lexa Software, 1996-2009.