Java: подключиться к Active Directory (AD)? - PullRequest
0 голосов
/ 16 декабря 2011

Я пытаюсь связаться с AD. Я пытался использовать этот код для подключения, но, похоже, он не подключается вообще. Извините, что не могу быть более конкретным, но это все, что я знаю. Ничего не произошло. Я удалил то, что считал несущественной частью этого класса, где рассматривается результат, потому что на этом этапе просто нет никакого результата, с которым нужно иметь дело. Я не получаю никаких ошибок в Netbeans, но .. Ничего не происходит, когда я пытаюсь подключиться.

Что происходит? Что я делаю не так?

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

    }
} 

1 Ответ

1 голос
/ 16 декабря 2011

Вам необходимо создать контекст, а не только переменную. Вы просто помещаете некоторые данные в хеш-таблицу и все.

Я не знаю конкретно о LDAP, но с JNDI вам нужно было бы позвонить new InitialContext(), чтобы фактически создать контекст. После этого вам, возможно, придется вызвать метод в этом контексте, чтобы что-то произошло.

Так что в случае контекста LDAP вам понадобится что-то вроде этого:

DirContext ctx = new InitialLdapContext(env, new Control[0]); 
NamingEnumeration results = ctx.search(....);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...