tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
278
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    StehtimSchilf StehtimSchilf ist offline Mitglied Gold
    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
     

  2. #2
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    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

  1. Javascript liefert keine Ausgabe
    Von RageNo1 im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 07.05.09, 10:43
  2. Ldap Abfrage liefert kein Ergebnis
    Von angelozehr im Forum PHP
    Antworten: 0
    Letzter Beitrag: 31.10.08, 16:00
  3. Antworten: 2
    Letzter Beitrag: 17.05.08, 19:34
  4. LDAP-Abfrage 2-spaltig ohne Leereinträge
    Von TheUnholyOne im Forum PHP
    Antworten: 6
    Letzter Beitrag: 06.03.08, 11:48
  5. Antworten: 0
    Letzter Beitrag: 09.03.04, 12:30