[exim] nested condition for authentication

Top Page
Delete this message
Reply to this message
Author: Kerstin Espey
Date:  
To: exim-users
CC: ke
Subject: [exim] nested condition for authentication

Hi list,

something goes wrong with this authenticator:

begin authenticators

login:
   driver = plaintext
   public_name= LOGIN
   server_prompts = "Username:: : Password::"
   server_condition = ${if and { \
        { or { \
                { eq {$2}{${lookup{$1}dbm{/etc/exim4/authpwd.db}}}} \
                { eq {$2}{${lookup pgsql{select m_pwd from m_accounts where 
m_account='$1'}}} } \
                } \
        } \
        { !eq{$2}{} } \
        { !eq{$3}{} } \
        }{yes}{no} \
    }
   server_set_id=$1


For some reason, it does not work as expected. Testing with -bh, it does
always return an error, although I give the correct password:

SMTP>> 250-mail.hamcom.de Hello noc.mediationtelecom.net [84.96.74.32]

250-SIZE 10485760
250-PIPELINING
250-AUTH LOGIN PLAIN
250 HELP
auth login
SMTP<< auth login
SMTP>> 334 VXNlcm5hbWU6

334 VXNlcm5hbWU6
cGlreQ==
SMTP>> 334 UGFzc3dvcmQ6

334 UGFzc3dvcmQ6
base64XXXX
search_open: dbm "/etc/exim4/authpwd.db"
search_find: file="/etc/exim4/authpwd.db"
key="piky" partial=-1 affix=NULL starflags=0
LRU list:
1/etc/exim4/authpwd.db
End
internal_search_find: file="/etc/exim4/authpwd.db"
type=dbm key="piky"
file lookup required for piky
in /etc/exim4/authpwd.db
lookup yielded: XXXX
login authenticator:
$1 = piky
$2 = XXXX
expanded string: no
SMTP>> 535 Incorrect authentication data

535 Incorrect authentication data
LOG: MAIN REJECT
login authenticator failed for noc.mediationtelecom.net (extern)
[84.96.74.32]: 535 Incorrect authentication data (set_id=piky)
quit

Trying the pgsql first, does not make anything better:

[...]
SMTP<< auth login
SMTP>> 334 VXNlcm5hbWU6

334 VXNlcm5hbWU6
cGlreQ==
SMTP>> 334 UGFzc3dvcmQ6

334 UGFzc3dvcmQ6
base64XXXX
search_open: pgsql "NULL"
search_find: file="NULL"
key="select m_pwd from m_accounts where m_account='piky'" partial=-1
affix=NULL starflags=0
LRU list:
internal_search_find: file="NULL"
type=pgsql key="select m_pwd from m_accounts where m_account='piky'"
database lookup required for select m_pwd from m_accounts where
m_account='piky'
PGSQL query: select m_pwd from m_accounts where m_account='piky'
PGSQL new connection: host=dbauthsrv.ibbone.helinet.de port=
database=polluxacct user=wwwfront
lookup yielded: XXXX
login authenticator:
$1 = piky
$2 = XXXX
expanded string: no
SMTP>> 535 Incorrect authentication data


Can anyone help, please?
--

Regards,

Kerstin

PGP-Fingerprint: AB02 7E7B 5B6B 983F 8FF6 8870 3CFC 79FC 0E90 DDC9