Java eclipse - 活动目录,属性修改

时间:2013-02-15 16:45:26

标签: java eclipse attributes active-directory

我想用Java(Eclipse)获取我的活动目录的属性。

我找到了这段代码:

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, "?????????")中加入哪些内容?

非常感谢。

1 个答案:

答案 0 :(得分: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将用于创建该连接的工具。如果你没有指定它,java将使用默认值com.sun.jndi.ldap.LdapCtxFactory,如果我没弄错的话。