client_name = ${extract{1}{:}{${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$value}fail}}}
client_secret = ${extract{2}{:}{${lookup{$host}nwildlsearch{CONFDIR/passwd.client}{$value}fail}}}
-# hcoop-change: Authenticate against /etc/courier/exim.dat for plain
-# and login authenticators
+# hcoop-change: Authenticate against either /etc/courier/exim.dat or
+# SASL for plain and login authenticators
-userdb_plain:
+hcoop_plain:
driver = plaintext
public_name = PLAIN
server_condition = \
- ${if \
- crypteq {$3} \
- {${extract{systempw}{${tr{${lookup{$2} \
+ ${if or {{crypteq {$3} \
+ {${extract{systempw}{${tr{${lookup{$2} \
dbm{/etc/courier/exim.dat} \
- }}{|}{ }}}}} \
- {yes} \
- {no} \
- }
+ }}{|}{ }}}}}} \
+ {saslauthd {{$2}{$3}}}}}
server_set_id = $2
-userdb_login:
+hcoop_login:
driver = plaintext
public_name = LOGIN
server_prompts = "Username:: : Password::"
server_condition = \
- ${if \
- crypteq {$2} \
- {${extract{systempw}{${tr{${lookup{$1} \
+ ${if or {{crypteq {$2} \
+ {${extract{systempw}{${tr{${lookup{$1} \
dbm{/etc/courier/exim.dat} \
- }}{|}{ }}}}} \
- {yes} \
- {no} \
- }
+ }}{|}{ }}}}}} \
+ {saslauthd {{$1}{$2}}}}}
server_set_id = $1
# this returns the matching line from passwd.client and doubles all ^