[Dovecot] test67 ldap_connection
Andrew Hutchings
info at a-wing.co.uk
Tue Apr 12 21:36:08 EEST 2005
You might want to look back at my posts on the recent SQL auth problems,
sound very similar.
Regards
Andrew
On Tue, 2005-04-12 at 18:25 +0200, Thomas Hummel wrote:
> Hello,
>
> I've been trying to figure out what's wrong with authentication
> against an ldap pass/user db with test67 as test62 was working fine.
>
>
> [ The problem is the same as previously described in this list :
>
> - FreeBSD-5.3
> - dovecot-1.0-test67
> - openldap-2.1.27
>
> --> "ldap(dovetest,127.0.0.1): No password in reply"
> --> "NO Temporary authentication failure."
>
> or
>
> --
> dovecot: Apr 12 18:22:41 Info: auth(default): client in: AUTH 1 PLAIN service=IMAP lip=157.99.64.42 rip=157.99.64.42
> dovecot: Apr 12 18:22:41 Info: auth(default): client out: CONT 1
> dovecot: Apr 12 18:22:41 Info: auth(default): client in: CONT 1 AGRvdmV0ZXN0AGZvbw==
> dovecot: Apr 12 18:22:41 Info: auth(default): ldap(dovetest,157.99.64.42): base=ou=personnes, dc=pasteur, dc=fr scope=subtree filter=(&(objectClass=posixAccount)(uid=dovetest)) fields=uid,homeDirectory,,,uidNumber,gidNumber
> dovecot: Apr 12 18:22:42 Info: auth(default): client in: AUTH 2 PLAIN service=IMAP lip=157.99.64.42 rip=157.99.64.42 resp=AGRvdmV0ZXN0AGZvbw==
> dovecot: Apr 12 18:22:42 Info: auth(default): ldap(dovetest,157.99.64.42): base=ou=personnes, dc=pasteur, dc=fr scope=subtree filter=(&(objectClass=posixAccount)(uid=dovetest)) fields=uid,homeDirectory,,,uidNumber,gidNumber
>
> dovecot: Apr 12 18:22:42 Error: auth(default): ldap(dovetest,157.99.64.42): No password in reply
> dovecot: Apr 12 18:22:42 Error: auth(default): file passdb-ldap.c: line 122 (handle_request): assertion failed: (scheme != NULL)
> dovecot: Apr 12 18:22:42 Error: child 43147 (auth) killed with signal 6
> --
>
> ]
>
> I've noticed the following changes in the source code, and my
> understanding (which may be wrong) of my problem goes as follows :
>
> - In test62, the 'attr_names' attribute array was defined outside the
> 'ldap_connection' struct, thus allowing 'passdb_ldap_conn' and
> 'userdb_ldap_conn' structs to have different array of such type.
>
> - At the opposite, in test67, the 'attr_names' array is inside the
> 'ldap_connection'. As 'passdb_ldap_conn' and 'userdb_ldap_conn' are of
> the 'ldap_connection' type and since the 'db_ldap_init' function
> returns the existing ldap connection if it exists, the
> 'passdb_ldap_preinit' and 'usedb_ldap_preinit' will call the
> 'db_ldap_set_attrs' function on _the same_ 'ldap_connection' object.
>
> - So when the 'db_ldap_search' function is called from the
> 'passdb-ldap.c:ldap_lookup_pass function, the 5th argument
> (passdb_ldap_conn->attr_names) will point to the 'user_attrs'
> instead of the 'pass_attrs', since userdb_preinit will have already
> been called.
>
> - I've also noticed the use of the 'attr_map' hash to store the
> attribute/value pairs, but since it doesn't seems to be used when
> calling 'ldap_lookup_pass', I guess the problem is somewhere else.
>
> Can someone give me a clue ? Has someone successfully set up
> dovecot-1.0-test67 on a similar configuration ?
>
> thanks
>
>
>
--
Andrew Hutchings (A-Wing)
Linux Guru - Netserve Consultants Ltd. - www.domaincity.co.uk
Random BOFH excuse: T-1's congested due to porn traffic to the news
server.
More information about the dovecot
mailing list