On Tue, 2009-01-20 at 09:53 +0100, Tom Sommer wrote:
> sql(u...@example.com,127.0.0.1): query: SELECT username as user, 
> plainpassword as password, nopassword FROM cyrususers WHERE username = 
> 'u...@example.com' AND password = PASSWORD('SECRET') AND active = 1
> dovecot: Jan 20 09:01:18 Info: auth-worker(default): 
> sql(u...@example.com,127.0.0.1): unknown user
..
> It appears the user missed the cache, a SQL lookup is performed (which 
> returns 1 record, I tested the query directly) - however for some reason 
> the lookup is set as Unknown User, a state which it then keeps. 

It's most likely set to unknown user because the password=PASSWORD()
check fails and no rows are returned. If you're already returning
plainpassword for Dovecot, why do you do the password check also in the
SQL query? That doesn't allow Dovecot to differentiate between unknown
user and invalid password.

> Obviously I can adjust this with auth_cache_negative_ttl, but I presumed 
> the default value was always 0

Nope, 3600.

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to