

Password database extra fields
==============================


The primary purpose of a password database lookup is the return the password for a given user. It may however also return other fields which are treated specially: 

 * >>user<<: Change the username (eg. lowercase it). 
 * >>allow_nets<<: Allow user to log in from only specified IPs. 
 * >>proxy<<: Proxy the connection to another IMAP/POP3 server. 
 * >>host<<: Send login referral to client. 
 * >>nologin<<: User isn't actually allowed to log in even if the password matches, with optionally a different reason given as the authentication failure message. 
 * >>nodelay<<: Don't delay replying to client of the authentication failure. 
How to return these extra fields depends on the password database you use. See the >>password database<< pages how to do it. Some passdbs however don't support returning them at all, such as >>PAM<<. 
The password database may also return fields prefixed with 'userdb_'. These fields are only saved and used later as if they came from the >>user database<<'s extra fields. Typically this is done only when using >>prefetch userdb<<. 
Note that boolean fields are true always if the field exists. So 'nodelay', 'nodelay=yes', 'nodelay=no' and 'nodelay=0' all mean that the nodelay field is true. With SQL the field doesn't exist if its value is NULL. 


Examples
========




SQL
===


dovecot-sql.conf: 
---%<-------------------------------------------------------------------------
password_query = SELECT userid as user, password, 'Y' as proxy, host \
  FROM users WHERE userid = '%u'
# NOTE: Dovecot doesn't really support line splitting with '\' currently
---%<-------------------------------------------------------------------------



LDAP
====


dovecot-ldap.conf: 
---%<-------------------------------------------------------------------------
pass_attrs=uid=user,userPassword=password,proxy,hostName=host
---%<-------------------------------------------------------------------------



passwd-file
===========



---%<-------------------------------------------------------------------------
user:{plain}pass::::::proxy=y host=127.0.0.1
---%<-------------------------------------------------------------------------

(This file was created from the wiki on 2007-12-11 04:42)
