Issue
Unable to add LDAP user if another LDAP user has the same last name.
The following stack trace error may be displayed.
java.lang.NullPointerException at com.xerox.docushare.directory.impl.DirectoryServerLDAPImpl.getLdapGlobalProperties(DirectoryServerLDAPImpl.java:3071) at com.xerox.docushare.directory.impl.DirectoryServerLDAPImpl._createExternalDsPrincipal(DirectoryServerLDAPImpl.java:874) at com.xerox.docushare.directory.impl.DirectoryServiceAdminLDAPImpl.addUsers(DirectoryServiceAdminLDAPImpl.java:1012) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305) at sun.rmi.transport.Transport$1.run(Transport.java:159) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:155) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142) at com.xerox.docushare.directory.impl.DirectoryServiceAdminCommonImpl_Stub.addUsers(Unknown Source) at com.xerox.docushare.amber.pages.admin.accounts.LdapDirectoryServiceBean.addUsers(LdapDirectoryServiceBean.java:430) at com.xerox.docushare.amber.pages.admin.accounts.AddExternalUser.addSelectedNames(AddExternalUser.java:434) at com.xerox.docushare.amber.pages.admin.accounts.AddExternalUser.processRequest(AddExternalUser.java:72) at org.apache.jsp.jsp.admin.accounts.AddExternalUser_jsp._jspService(AddExternalUser_jsp.java:313) at com.xerox.docushare.amber.pages.common.AmberJspBase.service(AmberJspBase.java:56) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:390) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at com.xerox.docushare.amber.util.UTF8Filter.doFilter(UTF8Filter.java:28) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190) at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283) at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:697) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:889) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:686) at java.lang.Thread.run(Thread.java:619)
Reason / Possible Cause
This happens when another LDAP user has the same first and last name as the user you are trying to add. A filter by username must be used in order to be able to add a LDAP user that has the same first and last name as another LDAP user.
Solution
1. Log into DocuShare as Admin.
2. Click Admin Home | Account Management | LDAP Accounts | Configuration. The LDAP Configuration page displays.
3. Click the Advanced button. The LDAP Advanced Configuration page displays.
4. Place a check mark in the checkbox next to Enable User Access Control.
5. In the Filter field type (&(sAMAccountName=))
Where is replaced with the account value for your sAMAccountName.
Example: (&(sAMAccountName=TestUser))
Where TestUser is the username of the LDAP user you want to add to DocuShare.
Note: Ask the LDAP Administrator for assistance gathering the sAMAccount Attribute for the users. For detailed instructions on How To Use the LDIFDE Tool to Gather LDAP Information click the solution link at the bottom of the page. If necessary, contact the LDAP vendor directly for additional information.
6. Click the Apply button.
7. From the Administration Menu click Account Management | LDAP Accounts | Add.
8. In the Filter By grey box, select the menu option for Name and then click the Go button.
9. Only the User that was specified in the Filter field should be displayed in the Possible Users/Groups box.
10. Select the user from the Possible Users/Groups box and click the Add.
11. The Account will now be displayed in the Selected Users/Groups box.
12. Click the Add Accounts button.
13. Click Admin Home | Account Management | LDAP Accounts | Configuration. The LDAP Configuration page displays.
14. Click the Advanced button. The LDAP Advanced Configuration page displays.
15. Remove the check mark (clear the checkbox) from the checkbox next to Enable User Access Control.
16. Click the Apply button.
Note: No other LDAP users will be able to login DocuShare while the filter is in use therefore this solution is recommended to do after hours.
Solution Updated: July 4th, 2011
Solution ID: 859