Active Directoryグループから一部のユーザーをフェッチし、別のサイトで更新しようとしています。 NamingEnumerationからユーザーIDをフェッチし、REST API呼び出しによってそれを更新する別のメソッドに渡す必要がある部分を除いて、タスクはほぼ完了しています。以下は、私はADグループからユーザーを取得していたコードの一部です:Java NamingEnumeration - NamingEnumerationから単一の要素を取得する
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、OU = XXX、DC = XXX、DC = XXX、DC = XXX
メンバー:CN = USERNAME、 XXX
基本的には、このCNすなわちUSERNAMEだけを別の方法に渡す必要があります。
私はそれらを文字列配列に取得して処理しようとしましたが、役に立たなかったので、私は時間が足りません。 アイデアをいただければ幸いです。ありがとう。
ただ1つの要素があるとすぐに「中断」します。 – EJP