I think your problem is that you are hashing the passowrd on the client side (spring-security) and then OpenLDAP hashes that string again and then compares the result with the stored password hash. One the two combinations should work:
- Configure a hashing algorithm in spring-security and store the password hash as plain text password type in OpenLDAP -> The hashed password is sent to your LDAP and compared against the stored hashed password.
- Do not configure hashing in spring-security and store the password as a hashed password type in OpenLDAP (like you did as per your comment) -> The plain text password is sent to your LDAP, hashed by the LDAP server and then compared against the stored password hash.
I recommend 2) in combination with an SSL encrypted connection to your LDAP server to protect the plain text password in transit. If you go for 2) you can easily enable salting of your password hashes by using the SMD5 password type. 1) has the downside that each client is required to support the chosen hash function.