[Dovecot] Sieve authentication / directory issue after upgrade to 1.0.13.

Drew Calcott drew.calcott at auckland.ac.nz
Wed Nov 12 06:19:48 EET 2008

Hash: SHA1

Hi everyone,

I have come across a problem after upgrading from 1.0.rc17 to 1.0.13
(debian builds 1.0.13 is from etch-backports).

I initially upgraded as 1.0.rc17 isn't compiled with regex support, so
vacation messages that were uploaded via horde were being rejected.
(Everything else was working fine, just messages that required regex
functions were failing).

Horde is uploading the filters via pysieved, which is then in turn
placing them in the directory of:

- ---------


- ---------

At least, it was previously.  Since upgrading, dovecot has changed the
way it passes authentication details to pysieved and the domain is no
longer included in the username, so the domain cannot be parsed and
pysieved fails as it is unable to strip a value for %d.  (as a quick
aside, this isn't an issue with single domain servers as there is a
"defaultdomain" option that will force the value for %d, however, since
we have 9 domains to deal with, this isn't going to cut it).

Prior to upgrade, authentication was passed as thus (= are a new line in case the formatting dies)

- --------

======= > 'AUTH\t1\tPLAIN\tservice=pysieved\tresp=YWNhbD* restofstring *
====== < OK\t1\tuser=acal030 at sit.auckland.ac.nz\tuser=acal030\t\n'
===== Finished SASL authentication : {'username':'acal030 at sit.auckland.ac.nz', 'result': 'OK'}
===== Plugin returned home :'/shared/spool/active/sit.auckland.ac.nz/a/c/acal030/'
= Authenticated user acal030 at sit.auckland.ac.nz

- --------

Both user and user at domain were being passed and it was a matter of
simple nagging of the pysieved guys to update their code to strip the
required information.

However, the new version is passing auth like this:

- --------

======= > 'AUTH\t1\tPLAIN\tservice=pysieved\tresp=YWNhbD* restofstring *
======= < 'OK\t1\tuser=acal030\n'
===== Finished SASL authentication : {'username': 'acal030', 'result': 'OK'}
===== Plugin returned home : '/shared/spool/active//a/c/acal030/'

- -------

The only change to the dovecot config I have made is to add
"allow_all_users=yes" to userdb static as the new version was a lot
stricter about the passdb pam lookup not containing the user data (and
failing completely as a result).

In the dovecot logs themselves, the following lines were from the earlier build:

- ------

Info: auth(default): client out: OK	1	user=acal030 at sit.auckland.ac.nz	user=acal030
Info: auth(default): master in: REQUEST	243	23994	1
Info: auth(default): master out: USER	243	acal030 at sit.auckland.ac.nz home=/blah, mail=/blah etc.

- ------

Compared to this from the new one:

- ------

Info: auth(default): auth(acal030 at sit.auckland.ac.nz, username changed acal030 at sit.auckland.ac.nz -> acal030
Info: auth(default): client out: OK        1       user=acal030
Info: auth(default): prefetch(acal030, success
Info: auth(default): master out: USER      2       acal030 home=/blah, mail=/blah etc.

- ------

I am rather at the end of my tether with this, unfortunately.  :(  I have browsed through many wiki pages looking for a possible solution
or config variable I may have missed, but I really am coming up dry.

Cleaned up dovecot.conf is at: http://pastebin.com/m7f4303af

Should anyone want strace logs or whatever, I'm more than happy to make with them.

Thanks in advance for any assistance.


- ---
Drew Calcott
Science IT
University of Auckland
(p) +64 9 373 7599 x84269
Version: GnuPG v1.4.8 (Darwin)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org


More information about the dovecot mailing list