[Dovecot] Problem with domain part in user_query in dovecot 1.1.14
Konstantin
kostas at mgupb.net
Sun May 17 17:48:59 EEST 2009
Hi.
I'm using dovecot 1.1.14 with pgsql.
I tried to configure dovecot to get the domain part in user_query by specifying different variants of auth_username_format variable such as %Lu, %Lu@%Ld, %Lu-at-%Ld and so on... So dovecot gets domain part in password_query, but not in user_query. I noticed the username is changed like this: kostas at mgupb.net->kostas in log. For some reason it happens before user_query so there is no domain part already. So one thing that had worked out for me was commenting the below code in src/auth/auth-request.c:
if (strcmp(request->user, value) != 0) {
/* remember the original username for cache */
if (request->original_username == NULL) {
request->original_username =
p_strdup(request->pool, request->user);
}
auth_request_log_debug(request, "auth",
"username changed %s -> %s",
request->user, value);
request->user = p_strdup(request->pool, value);
}
I know that it is not so good, but it is working for me, now everything is fine, but I want it working without code deformations. What should I do? Thanks.
P.S. Such things were in 1.1.11 from which I upgraded to 1.1.14 last night.
Dovecot config:
# 1.1.14: /usr/local/etc/dovecot.conf
# OS: FreeBSD 7.0-RELEASE amd64
protocols: imap imaps pop3 pop3s
ssl_disable: yes
disable_plaintext_auth: no
login_dir: /var/run/dovecot/login
login_executable(default): /usr/local/libexec/dovecot/imap-login
login_executable(imap): /usr/local/libexec/dovecot/imap-login
login_executable(pop3): /usr/local/libexec/dovecot/pop3-login
login_greeting_capability(default): yes
login_greeting_capability(imap): yes
login_greeting_capability(pop3): no
verbose_proctitle: yes
first_valid_uid: 1000
first_valid_gid: 0
mail_privileged_group: mail
maildir_copy_preserve_filename: yes
mail_executable(default): /usr/local/libexec/dovecot/imap
mail_executable(imap): /usr/local/libexec/dovecot/imap
mail_executable(pop3): /usr/local/libexec/dovecot/pop3
mail_plugin_dir(default): /usr/local/lib/dovecot/imap
mail_plugin_dir(imap): /usr/local/lib/dovecot/imap
mail_plugin_dir(pop3): /usr/local/lib/dovecot/pop3
imap_client_workarounds(default): delay-newmail netscape-eoh tb-extra-mailbox-sep
imap_client_workarounds(imap): delay-newmail netscape-eoh tb-extra-mailbox-sep
imap_client_workarounds(pop3):
pop3_enable_last(default): no
pop3_enable_last(imap): no
pop3_enable_last(pop3): yes
pop3_client_workarounds(default):
pop3_client_workarounds(imap):
pop3_client_workarounds(pop3): outlook-no-nuls oe-ns-eoh
auth default:
mechanisms: plain login digest-md5
user: vmail
username_format: %Lu
verbose: yes
debug: yes
passdb:
driver: sql
args: /usr/local/etc/dovecot-sql.conf
userdb:
driver: sql
args: /usr/local/etc/dovecot-sql.conf
socket:
type: listen
client:
path: /var/spool/postfix/private/auth
mode: 432
user: postfix
group: postfix
dovecot-sql.conf:
driver = pgsql
connect = host=localhost dbname=hosting_db user=hosting_db password=adsfweae
password_query = SELECT NULL AS password, 'Y' as nopassword, userid AS user FROM
main.mail_base WHERE userid = '%n' AND password = '%w' and domain='%d'
#password_query = SELECT password, userid AS user FROM main.mail_base WHERE user
id = '%n' and domain='%d'
#user_query = SELECT '/var/mail/vhosts/' || domain || '/' || userid as mail, '/v
ar/mail/vhosts/' || domain || '/' || userid as home, uid, gid FROM main.mail_bas
e WHERE userid = '%n' and domain='%d'
user_query = SELECT '/var/mail/vhosts/' || domain || '/' || userid as mail, '/va
r/mail/vhosts/' || domain || '/' || userid as home, uid, gid FROM main.mail_base
WHERE userid = '%n' and domain='%d'
default_pass_scheme = PLAIN
--
Konstantin <kostas at mgupb.net>
More information about the dovecot
mailing list