On Mon, Aug 20, 2007 at 10:16:56AM +0400, Igor Sysoev wrote:
> > a0001 LOGIN user@xxxxxxxxxxx " 12345"
> >
> >
> > Cyrus IMAP и DBMail напрямую принимают такую команду нормально и логин
> > проходит, а вот если логин происходит через nginx, то проблема проявляет
> > себя несколько иначе, чем раньше: в лог nginx пишет ошибка авторизации, а
> > на внешнем сервере авторизации пароль получается без пробела.
> >
> >
> >
> > Видимо в HTTP-сессии к внешнему серверу авторизации надо как-то
> > экранировать пароль... (и логин, возможно).
>
> Насколько я вижу из отладочного лога, nginx передаёт
>
> Auth-User: user@xxxxxxxxxxx
> Auth-Pass: 12345
>
> то есть, пробел в начале передаётся, но не экранируется. Экранируются
> \d и \a. А вообще пробелы в паролях - это плохая идея, это нужно рубить
> ещё на стадии регистрации и смены пароля.
Прилагаемый патч включает в себя предыдущий и экранирует пробел.
--
Игорь Сысоев
http://sysoev.ru