2011-12-16 3 views
0

J'essaie d'entrer en contact avec un AD. J'ai essayé d'utiliser ce code pour me connecter, mais il ne semble pas se connecter du tout. Je suis désolé de ne pas pouvoir être plus précis que ça, mais c'est tout ce que je sais. Rien ne se passe. J'ai supprimé ce que je considérais comme la partie non essentielle de cette classe, où le résultat est traité, car à ce stade, il n'y a tout simplement aucun résultat à traiter. Je ne reçois aucune erreur dans Netbeans, mais .. Rien ne se passe quand j'essaye de me connecter.Java: se connecter à Active Directory (AD)?

Que se passe-t-il? Qu'est-ce que je fais mal?

import javax.naming.Context; 
import javax.naming.NamingEnumeration; 
import javax.naming.directory.*; 
import java.util.Hashtable; 
import java.util.*; 

public class AD { 

    public static void main(String[] args) { 
     String userName = "xx"; //AD username 
     String password = "xx"; //AD password 
     Hashtable env = new Hashtable(); 
     env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
     env.put(Context.PROVIDER_URL, "ldap://192.168.1.102:389/dc=agileworks,dc=com"); //AD Server URL - dc lader til at være "domain content" 
     //env.put(Context.SECURITY_AUTHENTICATION, "simple"); //virker ikke nødvendig 
       //env.put(Context.SECURITY_PRINCIPAL, new String("agileworks" + "\\" + userName)); 
     env.put(Context.SECURITY_PRINCIPAL, "agileworks" + "\\" + userName); //måske er tabelnavn\\ ikke nødvendig? 
     env.put(Context.SECURITY_CREDENTIALS, password); //password 

     DirContext ctx = null; //initialisering 
     NamingEnumeration results = null; //initialisering 

    } 
} 
+0

Reportez-vous à http://stackoverflow.com/questions/389746/ldap-java-library – Egor

Répondre

1

Vous devez créer un contexte non seulement la variable. Vous mettez simplement quelques données dans la table de hachage et c'est tout.

Je ne connais pas spécifiquement LDAP, mais avec JNDI, vous devez appeler new InitialContext() afin de créer un contexte. Après cela, vous devrez peut-être appeler une méthode sur ce contexte afin de faire quelque chose.

Ainsi, dans le cas d'un contexte LDAP que vous auriez besoin de quelque chose comme ceci:

DirContext ctx = new InitialLdapContext(env, new Control[0]); 
NamingEnumeration results = ctx.search(....); 
Questions connexes