We are on DSpace 5.8 and have always used internal (i.e PasswordAuthentication) until now. I've tried enabling LDAP based auth as follows:
1. In /opt/dspace/config/modules/authentication.cfg set:
plugin.sequence.org.dspace.authenticate.AuthenticationMethod = \
org.dspace.authenticate.LDAPAuthentication
2. Configured /opt/dspace/config/modules/authentication-ldap.cfg as follows:
enable = true
autoregister = true
provider_url = ldap://
130.123.96.53:389/id_field = cn
object_context = ou=clients,dc=massey,dc=ac,dc=nz
search_context = ou=clients,dc=massey,dc=ac,dc=nz
email_field = mail
surname_field = sn
givenname_field = givenName
search.anonymous = false
search.user = cn=ITS LDAP read-only agent,ou=System,ou=Clients,dc=massey,dc=ac,dc=nz
search.password = <<REDACTED>>
When I log onto our Dspace site with URL /ldap-login then I get the branded LDAP page, but as soon as I submit I get the traceback provided below.
Using Wireshark, I can see that the DSpace server isn't trying to connect to our LDAP server. However if (on the same server) I make use of the OS command line utility "ldapsearch" then an LDAP bind and query is successful, i.e.
Can someone help me to narrow down the fault ? Am I possibly missing a JAR ?
java.lang.NullPointerException
at org.dspace.authenticate.LDAPAuthentication$SpeakerToLDAP.getDNOfUser(LDAPAuthentication.java:405)
at org.dspace.authenticate.LDAPAuthentication.authenticate(LDAPAuthentication.java:202)
at org.dspace.authenticate.AuthenticationManager.authenticateInternal(AuthenticationManager.java:162)
at org.dspace.authenticate.AuthenticationManager.authenticate(AuthenticationManager.java:99)
at org.dspace.app.xmlui.utils.AuthenticationUtil.authenticate(AuthenticationUtil.java:107)
at org.dspace.app.xmlui.aspect.eperson.LDAPAuthenticateAction.act(LDAPAuthenticateAction.java:71)
at org.apache.cocoon.sitemap.impl.DefaultExecutor.invokeAction(DefaultExecutor.java:55)
....
Happy to provide any further info.
With Thanks,
Patrick