try changing your config so that it reads

passdb passb1 {
}

passdb passdb2 {
}

passdb passdb3 {
}

and try again. this should make it more clear what happens.

Aki

> On 01/08/2024 14:51 EEST zaxwat93--- via dovecot <dovecot@dovecot.org> wrote:
> 
>  
> got a problem when configured passdb with username_filter — looks like the 
> option doesn't work
> OS: FreeBSD 13 and 14. Dovecot version: 2.3.21
> Part of config:
> passdb {
>   args = /usr/local/bin/php /usr/local/dovecot/bin/checkpassword.php
>   driver = checkpassword
> }
> passdb {
>   args = /usr/local/bin/php /usr/local/dovecot/bin/checkpassword.php
>   driver = checkpassword
>   username_filter = us...@postmaster.local.one 
>   default_fields = domain=local.one
>   override_fields = user=postmas...@local.one
> }
> passdb {
>   args = /usr/local/bin/php /usr/local/dovecot/bin/checkpassword.php
>   driver = checkpassword
>   username_filter = us...@user2.local.one 
>   default_fields = domain=local.one
>   override_fields = user=us...@local.one
> }
> 
> When I try command "doveadm auth test us...@postmaster.local.one" and enter a 
> password of user1 — it works as planned — change us...@postmaster.local.one 
> to us...@local.one check it's password and override user to 
> postmas...@local.one
> But when I try "doveadm auth test us...@user2.local.one" — it also change 
> us...@user2.local.one to us...@local.one, and after password check — override 
> it to postmas...@local.one
> 
> Debug logs, when I try "doveadm auth test us...@user2.local.one":
> 
> Aug  1 11:01:03 auth: Debug: Loading modules from directory: 
> /usr/local/lib/dovecot/auth
> Aug  1 11:01:03 auth: Debug: Module loaded: 
> /usr/local/lib/dovecot/auth/lib20_auth_var_expand_crypt.so
> Aug  1 11:01:03 auth: Debug: Read auth token secret from 
> /var/run/dovecot/auth-token-secret.dat
> Aug  1 11:01:03 auth: Debug: passwd-file 
> /usr/local/etc/dovecot.users.list:Read 7 users in 0 secs
> Aug  1 11:01:03 auth: Debug: auth client connected (pid=0)
> Aug  1 11:01:03 auth: Debug: client in: AUTH   1       PLAIN       
> service=doveadm debug   resp=<hidden>
> Aug  1 11:01:03 auth: Debug: checkpassword(us...@user2.local.one): Performing 
> passdb lookup
> Aug  1 11:01:03 auth: Debug: checkpassword(us...@user2.local.one): execute: 
> /usr/local/bin/php /usr/local/dovecot/bin/checkpassword.php 
> /usr/local/libexec/dovecot/checkpassword-reply
> Aug  1 11:01:03 auth: Debug: checkpassword(us...@user2.local.one): Received 
> input:
> Aug  1 11:01:03 auth: Debug: checkpassword(us...@user2.local.one): 
> exit_status=1
> Aug  1 11:01:03 auth: checkpassword(us...@user2.local.one): Login failed 
> (status=1)
> Aug  1 11:01:03 auth: Debug: checkpassword(us...@user2.local.one): Finished 
> passdb lookup
> Aug  1 11:01:03 auth: Debug: checkpassword(us...@user2.local.one): Performing 
> passdb lookup
> Aug  1 11:01:03 auth: Debug: checkpassword(us...@user2.local.one): username 
> changed us...@user2.local.one -> us...@local.one
> Aug  1 11:01:03 auth: Debug: checkpassword(us...@local.one): execute: 
> /usr/local/bin/php /usr/local/dovecot/bin/checkpassword.php 
> /usr/local/libexec/dovecot/checkpassword-reply
> Aug  1 11:01:03 auth: Debug: checkpassword(us...@local.one): Received input: 
> user=us...@local.one  userdb_home=/var/spool/mail/    userdb_uid=dovecot 
> userdb_gid=dovecot
> Aug  1 11:01:03 auth: Debug: checkpassword(us...@local.one): exit_status=0
> Aug  1 11:01:03 auth: Debug: checkpassword(us...@local.one): username changed 
> us...@local.one -> postmas...@local.one
> Aug  1 11:01:03 auth: Debug: checkpassword(postmas...@local.one): Finished 
> passdb lookup
> Aug  1 11:01:03 auth: Debug: auth(postmas...@local.one): Auth request finished
> Aug  1 11:01:03 auth: Debug: client passdb out: OK     1  
> user=postmas...@local.one                original_user=us...@user2.local.one
> 
> I've checked sources and find in " core/src/auth/auth-request.c (from line 
> 617) " code that check username_filter and should send "skipping passdb: 
> username filtered" message in debug, but it doesn't do it. 
> 
> Is it a bug or I've missed something in setup?
> _______________________________________________
> dovecot mailing list -- dovecot@dovecot.org
> To unsubscribe send an email to dovecot-le...@dovecot.org
_______________________________________________
dovecot mailing list -- dovecot@dovecot.org
To unsubscribe send an email to dovecot-le...@dovecot.org

Reply via email to