如何在没有Java代码的完整CN / DN的情况下连接Active Directory

时间:2013-07-12 12:09:53

标签: java active-directory ldap distinguishedname

我已实施方法:

public static LdapContext buildContext(String username, String password) {

    LdapContext context = null;

    Hashtable<String, String> env = new Hashtable<String, String>();

    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.SECURITY_AUTHENTICATION, "simple");
    env.put(Context.SECURITY_PRINCIPAL, username);
    env.put(Context.SECURITY_CREDENTIALS, password);
    env.put(Context.PROVIDER_URL, DOMAIN_URL);

    try {
        context = new InitialLdapContext(env, null);
    } catch (NamingException e) {

    }

    return context;
}

我不知道完整的CN / DN字符串。我只传递用户名(f.e.Tom)和密码。

我没有关于团体等的信息。

提前谢谢!

2 个答案:

答案 0 :(得分:1)

使用您拥有的信息搜索条目。搜索结果将包含与搜索匹配的条目数和匹配的每个条目的DN,因此搜索应尽可能具有限制性,以便仅返回您正在查找的一个条目。然后使用该DN绑定到服务器,

答案 1 :(得分:0)

特里说。 我们有一个执行Basic JNDI Search with Administration Account

的示例