在我的Java Web(Jboss)应用程序中,我需要从Active Directory获取数据。基本上,我知道员工的userID(windows登录ID),我需要知道他/她的办公室电话号码。所以我认为唯一包含员工电话的地方是在Windows Active Directory中。所以我尝试了一些示例java代码并尝试访问活动目录。这是一个示例代码:http://myjeeva.com/querying-active-directory-using-java.html public ActiveDirectory(String username,String password,String domainController){ properties = new Properties();
properties.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
properties.put(Context.PROVIDER_URL, "LDAP://" + domainController);
properties.put(Context.SECURITY_PRINCIPAL, username + "@" + domainController);
properties.put(Context.SECURITY_CREDENTIALS, password);
// initializing active directory LDAP connection
try {
dirContext = new InitialDirContext(properties);
} catch (NamingException e) {
LOG.severe(e.getMessage());
}
// default domain base for search
domainBase = getDomainBase(domainController);
// initializing search controls
searchCtls = new SearchControls();
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
searchCtls.setReturningAttributes(returnAttributes);
}
因此我们可以看到我需要拥有用户名和密码才能查询活动目录中的用户数据,但我无法获取所有用户的密码。我还试图将“密码”设置为“无”,试图使用匿名访问,但它不起作用。 有人知道可以匿名访问Active目录吗?我在asp.net中被告知,可以在不提供用户ID和密码的情况下访问活动目录。我想知道它应该在Java中工作。我感谢任何帮助或例子。非常感谢。
答案 0 :(得分:1)