【发布时间】:2017-12-12 10:39:37
【问题描述】:
我正在尝试从 Active Directory 组中获取一些用户并在我们的另一个站点中更新它们。 除了我需要从 NamingEnumeration 获取用户 ID 并将其传递给另一个方法,该方法将通过 REST API 调用对其进行更新之外,该任务几乎已完成。下面是我从 AD 组中获取用户的部分代码:
DirContext myContext = new InitialDirContext(envVars);
SearchControls searchCtrls = new SearchControls();
searchCtrls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String[] attributes = { "cn", "member"};
searchCtrls.setReturningAttributes(attributes);
String filter = "(&(objectClass=group)(cn=GROUP_NAME))";
NamingEnumeration values = myContext.search("DC=XXXX,DC=XXXX",filter,searchCtrls);
while (values.hasMoreElements())
{
SearchResult result = (SearchResult) values.next();
Attributes attribs = result.getAttributes();
if (null != attribs)
{
for (NamingEnumeration ae = attribs.getAll(); ae.hasMoreElements();)
{
Attribute atr = (Attribute) ae.next();
String attributeID = atr.getID();
for (
Enumeration vals = atr.getAll();
vals.hasMoreElements();
System.out.println(attributeID+": "+vals.nextElement())
);
}
}
}
当我运行它时,输出如下所示:
成员:CN=USERNAME,OU=XXX,OU=XXX,OU=XXX,DC=XXX,DC=XXX,DC=XXX
成员:CN=USERNAME,OU=XXX,OU=XXX,OU=XXX,DC=XXX,DC=XXX,DC=XXX
基本上,我需要单独获取这个 CN,即 USERNAME,我将把它传递给另一个方法。
我确实尝试将它们放入字符串数组并处理它们,但无济于事,而且我的时间不多了。 任何想法将不胜感激。谢谢。
【问题讨论】:
-
只要有一个元素就
break。
标签: java active-directory