title: JAVA LDAP ERROR javax.naming.NamingException: [LDAP: error code 1 - 000004DC: LdapErr: DSID-0C09075A
body: <p>I have a C# code to connect to LDAP Server and it works perfectly fine</p>
  
  <p>The working C# code is given below</p>
  
  <pre><code>        user = "myname@myorg.com";
          string pwd = "secret";
  
          String uid = "uid=" + user + ",ou=people,dc=myorg,dc=com";
          int empID = 0;
          DirectoryEntry root = new DirectoryEntry("LDAP://myorg.com", user, pwd, AuthenticationTypes.None);
          try
          {
              object connected = root.NativeObject;
  
              DirectorySearcher search = new DirectorySearcher(root);
  
              search.Filter = "(&amp;(objectClass=user)(objectCategory=Person))";
  
              search.PropertiesToLoad.Add("SAMAccountName");
              search.PropertiesToLoad.Add("EmployeeID");
  
              foreach (System.DirectoryServices.SearchResult resEnt in search.FindAll())
              {
                  System.DirectoryServices.DirectoryEntry de = resEnt.GetDirectoryEntry();
  
                  if (de.Properties["employeeID"].Value != null &amp;&amp; de.Properties["userPrincipalName"].Value != null)
                  {
                      if (user.Equals(de.Properties["userPrincipalName"].Value))
                      {
                          string empIDstr = (string)de.Properties["employeeID"].Value;
  
                          int.TryParse(empIDstr, out empID);
                          Response.Write("EMp ID is No is "+empID);
                      }
  
                  }
              }
          }
          catch(Exception ex)
          {
              Response.Write("Logon failed");
          }
  </code></pre>
  
  <p>Now I am trying to do the same thing in java as I have another application to develop in Java but the following code throws exception</p>
  
  <pre><code>public class LdapClient {
  
  
      public void authenticate(String user, String pwd){
  
          String uid = "uid=" + user + ",ou=people,dc=myorg,dc=com";
  
          Hashtable env = new Hashtable();
          env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
          env.put(Context.PROVIDER_URL, "ldap://myorg.com");
          env.put(Context.SECURITY_AUTHENTICATION, "none");
          env.put(Context.SECURITY_PRINCIPAL, uid);
          env.put(Context.SECURITY_CREDENTIALS, pwd);
  
          try {
              DirContext ctx = new InitialDirContext(env);
  
              **//THE ERROR COMES AT THE LINE BELOW**
              NamingEnumeration&lt;?&gt; namingEnum = ctx.search("ou=people,dc=myorg,dc=com", "(&amp;(objectclass=user)(objectCategory=Person))", getSimpleSearchControls());
              **strong text**
              while (namingEnum.hasMore ()) {
                  SearchResult result = (SearchResult) namingEnum.next ();    
                  Attributes attrs = result.getAttributes ();
                  System.out.println(attrs.get("cn"));
  
              } 
              namingEnum.close();
          } catch (Exception e) {
              try {
                  e.printStackTrace();
              } catch (Exception e1) {
                  e1.printStackTrace();
              }
          }
      }
  
      private SearchControls getSimpleSearchControls() {
          SearchControls searchControls = new SearchControls();
          searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
          String[] attrIDs = {"samAccountName","employeeID"};
          searchControls.setReturningAttributes(attrIDs);
          return searchControls;
      }
  
  }
  </code></pre>
  
  <p>PLEASE HELP as I thing the corresponding same code works in C# </p>
  
  <pre><code>javax.naming.NamingException: [LDAP: error code 1 - 000004DC: LdapErr: DSID-0C09075A, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v1db1 ]; remaining name 'ou=people,dc=myorg,dc=com'
      at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source)
      at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
      at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
      at com.sun.jndi.ldap.LdapCtx.searchAux(Unknown Source)
      at com.sun.jndi.ldap.LdapCtx.c_search(Unknown Source)
      at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(Unknown Source)
      at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
      at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
      at javax.naming.directory.InitialDirContext.search(Unknown Source)
      at ldap.LdapClient.authenticate(LdapClient.java:51)
      at ldap.LdapClient.main(LdapClient.java:30)
  </code></pre>
  
  <p>I have to do this in Java as I need to develop another application pointing to the same LDAP server . The client needs to be java. PLEASE HELP</p>