Ich versuche, einige Benutzer aus der Active Directory-Gruppe zu holen und sie auf einer anderen unserer Website zu aktualisieren. Die Aufgabe ist fast erledigt, mit Ausnahme des Teils, wo ich die Benutzer-ID von NamingEnumeration abholen und an eine andere Methode übergeben muss, die sie über einen REST-API-Aufruf aktualisiert. Unten ist ein Teil des Codes, wo ich Benutzer aus Active Directory-Gruppe am holen:Java NamingEnumeration - Abrufen eines einzelnen Elements aus einer 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())
);
}
}
}
Als ich dies ausführen, ist der Ausgang so etwas wie unten:
Mitglied: CN = USERNAME- OU = XXX , OU = XXX, OU = XXX, DC = XXX, DC = XXX, DC = XXX Mitglied: CN = USERNAME, OU = XXX, OU = XXX, OU = XXX, DC = XXX, DC = XXX, DC = XXX
Grundsätzlich muss ich diese CN dh USERNAME allein holen, die ich auf eine andere Methode weitergeben werde.
Ich habe versucht, sie in einem String-Array zu bekommen und sie zu verwerten, ohne Erfolg und mir ist knapp. Alle Ideen würden sehr geschätzt werden. Vielen Dank.
Einfach 'brechen', sobald Sie ein Element haben. – EJP