Announcement

Collapse
No announcement yet.

Java und LDAP ( Attributbeschreibung mit zugehörigen Wert)

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Java und LDAP ( Attributbeschreibung mit zugehörigen Wert)

    Hallo,

    möchte mir aus einem Verzeichnisdienst aus LDAP alle Personen holen mit deren Attributbeschreibungen mit zugehörigen Wert.
    Bis jetzt habe ich mit folgendem Code mir nur die Personen ziehen können ; aber nicht deren Attributbeschreibungen mit Wert

    Ausgabe : 1. cn=Susie Mustermann 2. cn= Peter Maier etc.

    Auszug Code :
    Code:
    DirContext ctx = new InitialDirContext(env);
        
                    LinkedList list = new LinkedList(); 
        		NamingEnumeration results = null; 
    
        		NamingEnumeration list2 = ctx.list("l=X,ou=Y,o=Z,c=de");
        		 
        		while(list2.hasMore())
        		{
        			NameClassPair nc = (NameClassPair)list2.next();
        			System.out.println((counter)++ + "." + nc.getName());
        		}

    Attributbeschreibung mit Wert wäre z. B. : telephoneNumber | +49 0521455
    .Im LDAP Browser steht noch bei jeder markierten Person : DN: cn=Susie Mustermann,l=X,ou=Y,o=Z,c=de und 5mal die objectClass mit jeweils verschieden Werten : bla (zusätzlich), person (strukturell), top(abstrakt)

  • #2
    habe weitere Methoden gefunden die mir eigentlich helfen sollten. Allerdings gibt es "Casting"- Fehler obwohl es mir Eclipse vorgeschlagen hat. Jmd. ne Idee wie man es umgehen könnte ?

    Code:
    DirContext ctx = new InitialDirContext(env);
        		
        		SearchControls sc = new SearchControls();
        		
        		String[] attributeFilter = {"cn", "mail"};
        		sc.setReturningAttributes(attributeFilter);
        		sc.setSearchScope(SearchControls.SUBTREE_SCOPE);
        		
        		String filter = "(&(cn=*)(mail=*))";
        		String base2  = "l=X,ou=Y";
        		
        		NamingEnumeration results = ctx.search(base2, filter, sc);
        		while (results.hasMore()) 
        		{
        		    SearchResult sr = (SearchResult) results.next();
        		    Attributes attrs = sr.getAttributes();
        		    
        		    Attribute attr = (Attribute) attrs.get("cn");
        		    System.out.println(((javax.naming.directory.Attribute) attr).get() + ": ");
        		    attr = (Attribute) attrs.get("mail");
        		    System.out.println(((javax.naming.directory.Attribute) attr).get());
        		}
    Fehlermeldung : Exception in thread "main" java.lang.ClassCastException: com.sun.jndi.ldap.LdapAttribute cannot be cast to java.text.AttributedCharacterIterator$Attribute

    Comment


    • #3
      Im Debugger nachschauen, was für eine Klasse geliefert wird und nach dieser casten
      Christian

      Comment

      Working...
      X