Exemple de code Java pour tester l’accès LDAP :
import javax.naming.*;
import javax.naming.directory.*;
import java.util.Hashtable;
public class LdapTest {
public static void main(String[] args) {
String ldapUrl = "ldap://your-ad-server.dom:389"; // ou ldaps://...:636 pour SSL
String baseDn = "OU=UTILISATEURS,DC=DOMAIN,DC=dom";
String username = "jdupont"; // sAMAccountName
String bindDn = "DOMAIN\\ldap-reader"; // Compte ayant droit de lecture LDAP (remplace par le tien)
String password = "yourPassword"; // Mot de passe du compte de service
Hashtable<String, String> env = new Hashtable<>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldapUrl);
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, bindDn); // DN ou DOMAIN\\User
env.put(Context.SECURITY_CREDENTIALS, password);
try {
DirContext ctx = new InitialDirContext(env);
String searchFilter = "(sAMAccountName=" + username + ")";
SearchControls sc = new SearchControls();
sc.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration<SearchResult> results = ctx.search(baseDn, searchFilter, sc);
if (results.hasMore()) {
SearchResult result = results.next();
System.out.println("✅ Utilisateur trouvé : " + result.getNameInNamespace());
} else {
System.out.println("❌ Utilisateur non trouvé.");
}
ctx.close();
} catch (NamingException e) {
System.err.println("Erreur LDAP : " + e.getMessage());
e.printStackTrace();
}
}
}
Edition du fichier LdapTest.java:
#vim LdapTest.java (coller le code ci-dessus)
Compilation du code:
#javac LdapTest.java
Exécution du programme:
#java LdapTest