2017-12-12 1 views
0

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.

+0

Einfach 'brechen', sobald Sie ein Element haben. – EJP

Antwort

0

Nun, ich habe dieses Problem umgehen. Unter Ansatz arbeitete für mich.

Ich ließ die Ausgabe in eine Liste und beschnitten die unerwünschten Teile, um das CN allein zu erhalten. Würde mich freuen, wenn das in Zukunft jemandem hilft.

Verwandte Themen