[Dovecot] SQL passdb lookups not working

Benjamin Montgomery bmontgom at montynet.org
Sun Aug 7 20:53:17 EEST 2011

Hello everyone,

I'm trying to make dovecot do user authentication against a SQL 
database.  The passwords (managed by Django) are stored as salted SHA1 
encoded in hex.  I monkey patched Django's password method so that the 
password hash is made with <password><salt> (Django does 
<salt><password>, the patched method was verified to return same value 
as dovecotpw) and the passwords are stored in the database separately as 
the salted hash and the salt.  When I query the values out of the 
database, I'm using MySQL's concat function to return the password as 
{SSHA.hex}<sha1 hash><salt>.  Dovecot is not able to verify any 
passwords right now.  I've scoured the wiki and I think my setup is 
correct...config info is below.  Any advice on where to look for 
debugging or setup of my passwords would be appreciated!



default_pass_scheme = SSHA.hex

password_query = \
     SELECT emailmanager_emailaddresses.account AS username, \
            emailmanager_domain.name AS domain, \
            CONCAT('{SSHA.hex}', \
                   emailmanager_userprofile.shadigest, \
                   emailmanager_userprofile.salt \
                  ) AS password \
            FROM emailmanager_emailaddresses \
            JOIN emailmanager_domain ON emailmanager_emailaddresses.id = 
emailmanager_domain.id \
            JOIN emailmanager_userprofile ON 
emailmanager_emailaddresses.id = emailmanager_userprofile.id \
            WHERE emailmanager_emailaddresses.account = '%n' \
            AND emailmanager_domain.name = '%d'

More information about the dovecot mailing list