sql connections during login
Ken Murchison
murch at andrew.cmu.edu
Fri Feb 10 07:28:21 EST 2006
Scott Russell wrote:
> Greets.
>
> With Cyrus 2.3.1 (built from tgz) and SASL 2.1.19-5 from RHEL4 when
> using sql plugin I've noticed multiple sql queries and connections
> during a single login. I first noticed from a php script built with
> PEAR::Net::Cyrus and then tested using "imtest -a cyrus -w password -m
> digest-md5". Performance is fine on my small 300 user site but I'm
> curious as to why the extra connection happens (note transaction 4734
> and 4735 in log below.) I'm also a bit curious why the password is
> retrieved twice instead of just once.
If you look at auth.log, you'll notice that its looking for both
userPassword (the current plaintext secret used for all mechs) and
cmusaslsecretDIGEST-MD5 (the legacy DIGEST-MD5 plaintext equivalent).
SASLv1 used to have mechanism specific entries in sasldb, so we look for
them for backwards compatibility.
>
> I should add that the same sequence of connects and queries happen
> regardless of using digest-md5, cram-md5 or login mechs.
>
>> 060209 8:43:38 4734 Connect cyrus at localhost on mail
>> 4734 Query START TRANSACTION
>> 4734 Query select decode(passwd,'salt') as
>> password from account where acct='cyrus' and allowlogin = '1' and
>> passwd is not NULL
>> 4734 Query select decode(passwd,'salt') as
>> password from account where acct='cyrus' and allowlogin = '1' and
>> passwd is not NULL
>> 4734 Query COMMIT
>> 4734 Quit
>> 4735 Connect cyrus at localhost on mail
>> 4735 Quit
>
>
> The SASL settings from my /etc/imapd.conf:
>
>> sasl_pwcheck_method: auxprop
>> sasl_auxprop_plugin: sql
>> sasl_mech_list: PLAIN CRAM-MD5 DIGEST-MD5
>> sasl_sql_engine: mysql
>> sasl_sql_user: cyrus
>> sasl_sql_passwd: password
>> sasl_sql_hostnames: localhost
>> sasl_sql_database: mail
>> sasl_sql_select: select decode(passwd,'salt') as password from account
>> where acct='%u' and allowlogin = '1' and passwd is not NULL
>> sasl_sql_usessl: no
>
>
> From /var/log/auth.log
>
>> Feb 9 09:09:24 imap-test imap[5508]: DIGEST-MD5 server step 1
>> Feb 9 09:09:24 imap-test imtest: DIGEST-MD5 client step 2
>> Feb 9 09:09:24 imap-test imtest: DIGEST-MD5 client step 2
>> Feb 9 09:09:24 imap-test imap[5508]: DIGEST-MD5 server step 2
>> Feb 9 09:09:24 imap-test imap[5508]: sql plugin Parse the username cyrus
>> Feb 9 09:09:24 imap-test imap[5508]: sql plugin try and connect to a
>> host
>> Feb 9 09:09:24 imap-test imap[5508]: sql plugin trying to open db
>> 'mail' on host 'localhost'
>> Feb 9 09:09:24 imap-test imap[5508]: begin transaction
>> Feb 9 09:09:24 imap-test imap[5508]: sql plugin create statement from
>> userPassword cyrus imap.linux.ibm.com
>> Feb 9 09:09:24 imap-test imap[5508]: sql plugin doing query select
>> decode(passwd,'salt') as password from account where acct='cyrus' and
>> allowlogin = '1' and passwd is not NULL;
>> Feb 9 09:09:24 imap-test imap[5508]: sql plugin create statement from
>> cmusaslsecretDIGEST-MD5 cyrus imap.linux.ibm.com
>> Feb 9 09:09:24 imap-test imap[5508]: sql plugin doing query select
>> decode(passwd,'salt') as password from account where acct='cyrus' and
>> allowlogin = '1' and passwd is not NULL;
>> Feb 9 09:09:24 imap-test imap[5508]: commit transaction
>> Feb 9 09:09:24 imap-test imap[5508]: sql plugin Parse the username cyrus
>> Feb 9 09:09:24 imap-test imap[5508]: sql plugin try and connect to a
>> host
>> Feb 9 09:09:24 imap-test imap[5508]: sql plugin trying to open db
>> 'mail' on host 'localhost'
>> Feb 9 09:09:24 imap-test imtest: DIGEST-MD5 client step 3
>> Feb 9 09:09:24 imap-test imap[5520]: sql auxprop plugin using mysql
>> engine
>
>
--
Kenneth Murchison
Project Cyrus Developer/Maintainer
Carnegie Mellon University
More information about the Info-cyrus
mailing list