Hier der Code:
**************START******************
import lotus.domino.*;
import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.DirContext;
import javax.naming.directory.Attributes;
import javax.naming.directory.SearchControls;
import javax.naming.directory.SearchResult;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import java.util.Vector;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
System.out.println("Hashtabelle fuer Properties");
Hashtable env = new Hashtable(11);
System.out.println("INITIAL_CONTEXT_FACTORY : com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory");
System.out.println("PROVIDER_URL : ldap://SERVERNAME:PORT/");
env.put(Context.PROVIDER_URL,"ldap://SERVERNAME:PORT/");
String adminName = "CN=USERNAME,OU=XXX,dc=XXX,dc=XX";
String adminPasswort = "PASSWORT";
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, adminName);
env.put(Context.SECURITY_CREDENTIALS, adminPasswort);
System.out.println("Context");
try {
// initialisieren des Contextes
System.out.println("Initialisieren des Contextes");
DirContext ctx = new InitialDirContext(env);
// Suchparameter
SearchControls constraints = new SearchControls();
String searchBase = "SUCHSTRING" ;
String searchFilter = "(&(objectClass=SEARCHCLASS)(mail=*hans*))";
// Auch Unterebenen durchsuchen
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
// Suche starten mit den Argumenten (searchBase, searchFilter, searchCtl)
NamingEnumeration results = ctx.search(searchBase, searchFilter, constraints);
System.out.println("Results: " + results.hasMore());
int totalResults = 0;
// Durch alle gefundenen Datensätze durchgehen
while (results.hasMoreElements()) {
// Das nächste Ergebnis aussuchen
SearchResult si = (SearchResult) results.next();
totalResults++;
System.out.println(">> " + si.getName());
// Attribute
Attributes attrs = si.getAttributes();
}
System.out.println("Total results: " + totalResults);
// Verbindung trennen
ctx.close();
} catch (NamingException e) {
System.err.println("Problem : " + e);
}
session.recycle();
} catch(Exception e) {
e.printStackTrace();
}
}
}
***************ENDE******************
Angepasst werden müssen folgende Zeilen:
System.out.println("PROVIDER_URL : ldap://SERVERNAME:PORT/");
env.put(Context.PROVIDER_URL,"ldap://SERVERNAME:PORT/");
String adminName = "CN=USERNAME,OU=XXX,dc=XXX,dc=XX";
String adminPasswort = "PASSWORT";
String searchBase = "SUCHSTRING" ;
String searchFilter = "(&(objectClass=SEARCHCLASS)(mail=*hans*))";
Gruss, Dave