1

Java(Eclipse)を使用してActiveDirectoryの属性を取得したい。

私はこのコードを見つけました:

Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");

// Authenticate as S. User and password "mysecret"
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, 
        "cn=S. User, ou=NewHires, o=JNDITutorial");
env.put(Context.SECURITY_CREDENTIALS, "mysecret");

// Create the initial context
DirContext ctx = new InitialDirContext(env);

しかし、私はこれから始めて、接続があるかどうかを知りました:

String ldapUrl = "ldap://"+serverAddress+":389";
//Prepare the environment with the username and password.
Hashtable env = new Hashtable();
DirContext ctx = null;
env.put(Context.SECURITY_PRINCIPAL, DOMAIN+username);
//env.put(Context.SECURITY_PRINCIPAL, username);
env.put(Context.SECURITY_CREDENTIALS, password);

ctx = LdapCtxFactory.getLdapCtxInstance(ldapUrl, env); // To test the connection

では、どうすればInitialDirContextを作成できますか?env.put(Context.INITIAL_CONTEXT_FACTORY, "?????????")その作品のために私は何を入れるべきですか?

どうもありがとう。

4

1 に答える 1

0

見つけた例では、次のようにすると接続が確立されます。

// Create the initial context
DirContext ctx = new InitialDirContext(env);

これを機能させるには、次のような必要なすべての環境プロパティを設定する必要があります。

SECURITY_CREDENTIALS
SECURITY_PRINCIPAL
SECURITY_AUTHENTICATION
PROVIDER_URL
INITIAL_CONTEXT_FACTORY
(possibly others depending on if you have encryption set in your Active Directory)

コンテキストファクトリは、Javaがその接続を作成するために使用するものです。あなたがそれを指定しない場合com.sun.jndi.ldap.LdapCtxFactory、私が間違っていなければ、javaはデフォルトであるを使用します。

于 2013-02-15T17:07:42.613 に答える