ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
278
278
EMPFEHLEN
-
19.07.11 17:09 #1
- Registriert seit
- Oct 2003
- Beiträge
- 117
Hi Forum
mit nachfolgendem Code kann ich mir die gewünschten LDAP-Attribute auslesen:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
public ArrayList<Attribute> bla(String[] returningFields) { ArrayList<Attribute> list = new ArrayList<Attribute>(); SearchControls sc = new SearchControls(); // Dummy Filter String searchFilter = "(&(sAMAccountName=administrator))"; // Einschränken der Attribute sc.setReturningAttributes(returningFields); sc.setSearchScope(SearchControls.SUBTREE_SCOPE); try { NamingEnumeration<SearchResult> results = this.ctx.search("", searchFilter, sc); while (results.hasMoreElements()) { SearchResult searchResult = (SearchResult) results.nextElement(); NamingEnumeration<? extends Attribute> resAttrs = searchResult.getAttributes().getAll(); while (resAttrs.hasMoreElements()) { Attribute attr = (Attribute) resAttrs.nextElement(); list.add(attr); } } } catch (NamingException ne){ System.err.println("Error in LdapManager: " + ne.getMessage()); } catch (NoSuchElementException nee) { System.err.println("Error in LdapManager: " + nee.getMessage()); } return list; }
Eigentlich funktioniert das soweit so gut bei einem Aufruf wie:
bla(new String[]{"sAMAccountName", "displayName", "cn"});
Da diese Attribute immer gesetzt sind. Wenn ich mir aber bspw. "sn", "employeeNumber", oder ähnliches zurückgeben will, so liefern mir die SearchResults nie diese Attribute. Warum nicht? Weil damit angezeigt wird, dass diese Attribute "leer" / (not set) sind? Damit kann ich leben, aber wie kann ich denn nun unterscheiden, ob das Attribut überhaupt im LDAP-Schema existiert? Wir liefern zu unserer Appli ebenfalls eine Schema-Erweiterung für Active Directory. Ich möchte jetzt überprüfen, ob die Attribute bereits existieren. Daher dachte ich, übergebe ich alle Attributnamen die ich testen will meiner Funktion bla() und schau welche zurückkommen und welche nicht. Aber nun kommen eben jene Attribute NICHT zurück, die zwar existieren aber leer sind.
a) Wie bewerkstellige ich es, dass auch die "leeren" Attribute zurückgegeben werden?
b) Wie kann ich eine "existiert ldap-Attribut"-Abfrage realisieren?
Danke & Gruess
SiS
-
19.07.11 17:53 #2
LDAP und Java habe ich eigentlich null Plan, aber ich habe mal mit LDAP in VBA gearbeitet. Dort habe ich es so verstanden, dass die Attribute immer nur gelesen werden können, welche du auch abfragst. Sprich, wenn du sagst bla(new String[]{"sAMAccountName", "displayName", "cn"}); kannst du auch nur diese 3 Attribute später verwenden. Wenn eins der Attribute leer ist, so vermute ich ist es in Java einfach null.
Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.
Ähnliche Themen
-
Javascript liefert keine Ausgabe
Von RageNo1 im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 07.05.09, 10:43 -
Ldap Abfrage liefert kein Ergebnis
Von angelozehr im Forum PHPAntworten: 0Letzter Beitrag: 31.10.08, 16:00 -
Winsock: getsockname liefert mir keine ip
Von sheel im Forum C/C++Antworten: 2Letzter Beitrag: 17.05.08, 19:34 -
LDAP-Abfrage 2-spaltig ohne Leereinträge
Von TheUnholyOne im Forum PHPAntworten: 6Letzter Beitrag: 06.03.08, 11:48 -
Bestimmte LDAP Attribute in Einträgen ausgeben lassen
Von AlexD1979 im Forum JavaAntworten: 0Letzter Beitrag: 09.03.04, 12:30





Zitieren
Login





