Salut,

j'essaye de configurer cyrus-imap avec l'authentification mysql.

voici mon fichier /etc/imap.conf
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 
configdirectory: /var/lib/imap
partition-default: /var/spool/imap
allowplaintext: yes
unixhierarchysep: yes
 
 
sievedir: /var/lib/imap/sieve
sendmail: /usr/sbin/sendmail
hashimapspool: true
autocreatequota: 1024
 
 
admins: cyradm oxadmin 
virtdomains: yes
defaultdomain: domaine1.com
 
 
tls_cert_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_key_file: /etc/pki/cyrus-imapd/cyrus-imapd.pem
tls_ca_file: /etc/pki/tls/certs/ca-bundle.crt
 
 
###################
sasl_pwcheck_method: auxprop
sasl_auxprop_plugin: sql
sasl_mech_list: plain login
sasl_password_format: crypt
 
sasl_log_level: 5
 
sasl_sql_hostnames: localhost
sasl_sql_engine: mysql
sasl_sql_database: database22_15
sasl_sql_user: openexchange
sasl_sql_passwd: xxxxxx
sasl_sql_select: SELECT database22_15.user.userPassword FROM database22_15.login2user LEFT JOIN database22_15.user ON database22_15.login2user.id=database22_15.user.id AND database22_15.login2user.cid=database22_15.user.cid WHERE database22_15.login2user.uid = '%u' AND database22_15.user.cid IN (SELECT configdb.login2context.cid FROM configdb.login2context WHERE configdb.login2context.login_info='%r')

le problème est le suivant: cyrus ne parvient pas a s'authentifier car les mots de passe dans la base de données sont cryptés avec {CRYPT}, et cyrus utilise le text claire pour le mot de passe (plaintext) ie:

si je faiy ceci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
[root@red etc]# telnet 127.0.0.1 143
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS] red.domaine1.com Cyrus IMAP4 v2.3.7-Invoca-RPM-2.3.7-2.el5 server ready
 
01 login test@domaine1.com secret (le mot de passe en calire)
01 login failed
par contre si je fait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
[root@red etc]# telnet 127.0.0.1 143
Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
* OK [CAPABILITY IMAP4 IMAP4rev1 LITERAL+ ID STARTTLS] red.domaine1.com Cyrus IMAP4 v2.3.7-Invoca-RPM-2.3.7-2.el5 server ready
 
01 login test@domaine1.com jklm254sdpe (le meme mot de passe mais crypté tiré de la base de données)
01 login OK


y a t'il un moyen pour forcer cyrus-sasl à crypter le mot de passe avec l'algorithme {CRYPT} avant de faire la comparaison avec le resultat du select?


merci d'avance