Problem beim abfragen eines LDAP Object

mrno

Erfahrenes Mitglied
Hi,
ich versuche jetzt schon seit Stunden Eigenschaften eines Objektes über LDAP auszulesen. Leider habe ich warscheinlich den falschen Ansatz. Habe bis jetzt folgenden Code der funktioniert:
Code:
package de.kke.ldap;

import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Vector;

import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;

public class LDAP {
String username,password;
String name;
static LdapContext ctx;
 public LDAP(String username,String password){
	 this.username=username;
	 this.password=password;
 }
 public void connect(){
	  Hashtable env = new Hashtable();
	  env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
	  env.put(Context.SECURITY_AUTHENTICATION, "simple");
	  System.out.println("cn="+username+",ou=Active,o=Vault");
	  env.put(Context.SECURITY_PRINCIPAL, "cn="+username+",ou=Active,ou=Users,o=Vault");
	  env.put(Context.SECURITY_CREDENTIALS, password);
	  env.put(Context.PROVIDER_URL, "ldap://172.16.208.128:389");
	  try {
		ctx = new InitialLdapContext(env,null);
		} catch (NamingException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
 }
 public void setUserCN(String userCN){
	 name=userCN;
 }
 public String[] getAttribute(String attributeName){
	 Vector v = new Vector();
	 List list = new ArrayList();
		String searchFilter="(&(objectClass=user)(cn="+name+"))";
		SearchControls searchControls = new SearchControls();
		String[]resultAttributes ={attributeName};
		searchControls.setReturningAttributes(resultAttributes);
		searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
		NamingEnumeration result;
		try {
			result = ctx.search("ou=Active,o=Vault", searchFilter,null);
		while(result.hasMoreElements()){
			SearchResult searchResult= (SearchResult)result.nextElement();
			list.add(searchResult.toString());
		}
		Iterator iter=list.iterator();
		while(iter.hasNext()){
			String element=(String)iter.next();
			System.out.println(element);
			element=element.substring(element.indexOf(attributeName+":")+attributeName.length()+2,element.indexOf("}"));
			return element.split(", ");
		}
		} catch (NamingException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
 }
 
}
Ich weis das mein user-Objekt unter cn=test,ou=Activ,o=Vault liegt. Wie komme ich auf dieses Object und kann mir dort alles auslesen lassen? Hoffe mir kann jemand helfen.
 

Neue Beiträge

Zurück