1
votes

Hashtable env = new Hashtable(11);create environment env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); env.put(Context.PROVIDER_URL, "ldap://localhost:10389/ou=system");url Declaration env.put(Context.SECURITY_CREDENTIALS, "secret"); env.put(Context.SECURITY_AUTHENTICATION, "simple"); env.put(Context.SECURITY_PRINCIPAL, "ou=121,ousystem");For this is Domain env.put(Context.SECURITY_CREDENTIALS, "secret");set new credential // Search and retrieve DN.

     DirContext ctx = null;
    NamingEnumeration results = null;
    try {
        ctx = new InitialDirContext(env);`cant create obj here`
        SearchControls controls = new SearchControls();
     // Authenticate
          ldap = new InitialLdapContext(env, null);
           } catch (AuthenticationException ae) {
     ae.printStackTrace();
      } catch (NamingException e) {
     e.printStackTrace();
 }

Error : javax.naming.NameNotFoundException:when creating obj for context

1

1 Answers

2
votes

Your Context.SECURITY_PRINCIPAL seems to be incorrect , it can't be an OU (Org Unit) but a CN , UID , etc. In your case it can be cn=121,ou=ousystem. You need to check it out.

If you have an LDAP Browser ,say Apache Directory Studio or Softera LDAP , try connecting to your LDAP server with the connection details.