Am 05.02.2016 um 10:38 schrieb Timo Sirainen:
On 05 Feb 2016, at 00:54, Thomas Möhle thomas@bitkomplex.de wrote:
So, do I get this right? During login the content of dovecots %w variable is supposed to be stored in a userdb field, called userdb_pass, and the %{x} is supposed to get the content of that field?
Mostly, yes. You need the "pass" field to be in userdb to access it in mail processes. The password is only available in passdb though, so you need to store it with userdb_ prefix to get it saved into userdb extra fields instead of passdb extra fields.
Unfortunately it still doesn't work. The filter-script does not recieve any data from that variable. I tried replacing the %w with %u, to see, if the filter-script would at least recieve the username then, but that doesn't work, either. So I'm not sure, if %{userdb:pass} isn't read correctly, or if "override_fields = userdb_pass=%w" doesn't set it right.
Check with:
doveadm auth login user@domain password
In the output there's supposed to be the "pass" field in userdb extra fields. If not, try adding before your first userdb:
userdb { driver = prefetch result_success = continue }
I don't think that was supposed to be necessary though.
Still nothing. It seems like the extra field doesn't even exist. :/
doveadm auth login thomas@example.com mypassword passdb: thomas@example.com auth succeeded extra fields: user=thomas@example.com home=/var/mail/example.com/thomas mail=maildir:/var/mail/example.com/thomas/mail:LAYOUT=fs quota_rule=*:bytes=0 uid=5000 gid=5000 userdb extra fields: thomas@example.com home=/var/mail/example.com/thomas mail=maildir:/var/mail/example.com/thomas/mail:LAYOUT=fs quota_rule=*:bytes=0 uid=5000 gid=5000