Our group is using IBM Tivoli Directory Server 4.1. We have an application that authenticates to the directory server. If first gets the dn from the directory server, then, using that will connect with the DN as the SECURITY_PRINCIPAL, and the password as the SECURITY_CREDENTIALS. This seems to work fine when an invalid password is passed, a NamingException of some type is thrown, and thus we're not authenticated.
Our problem occurs when the password is expired. No exception is thrown, and we recieve the InitialLdapContext. I came across an article here:
that describes some ldap controls which can provide the password expired information. This seems to me to only work with IBM Directory Server >= 5.1. We're using IBM Directory Server 4.1, and I don't see these controls available to me.
My questions are, 1. does anyone know how to identify that a particular dn's password has expired using IBM DS 4.1?, and 2. Are there other channels to ask such questions on? I don't seem to see much about forums around the IBM DS site.
If the password is expired, and a bind is successful, this sounds strange to me. Are you really sure, it is expired? Have you tried to access the LDAP server with a non-JNDI client and the same user and have checked, whether this works as well (e.g. ldapsearch)?
Unfortunately I am not able to reproduce your error because the oldest TDS version we have in place here is 5.1. Is there any reason not to use a newer version of Tivoli Directory Server (current is 6.0), which would support Password policy control?
A good resource for Tivoli sw is the newsgroup "forums.software.directory" at News server "forums.ibm.com".
Greetings, Stefan [ December 31, 2005: Message edited by: Stefan Zoerner ]
Author of German LDAP-Book
Committer at Apache Directory Project