LDAP Microsoft Active Directory 및 Domino 서버와 함께 작업 중이며 매우 새롭습니다.Domino Xpages의 모든 Microsoft Active Directory 사용자 가져 오기 Java 에이전트를 통한 NamePicker
우리는 Java Agent를 통해 Domino의 모든 Microsoft Active Directory 사용자를 성공적으로 가져 왔으며 모든 사용자 이름을 Java 디버그 콘솔에 인쇄했습니다. 이것에 관해서는 http://lotus-blogs.blogspot.in/2009/08/ldap-programming-using-domino-java-step.html 링크를 참조하십시오.
이제 Domino Xpages NamePicker의 모든 사용자를 얻으려고합니다. 그러면 Java Agent를 통해 Xpages NamePicker의 모든 사용자를 가져올 수 있습니까?
우리는 Xpages NamePicker에서 java beans를 사용하여 Domino 사용자를 가져올 수 있음을 확인했습니다.
어떤 종류의 제안이라도 정말 감사하겠습니다.
내 자바 에이전트는 다음과 같은 -
import lotus.domino.*;
public class JavaAgent extends AgentBase {
public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();
LDAPQuery.ldapconnect();
} catch(Exception e) {
e.printStackTrace();
}
}
}
및
import javax.naming.*;
import javax.naming.directory.*;
import java.util.*;
public class LDAPQuery {
public static void ldapconnect(){
String isFound="0";
try {
System.out.println("inside try 1");
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "PROVIDER_URL");
env.put(Context.SECURITY_PRINCIPAL, "UserName");
env.put(Context.SECURITY_CREDENTIALS, "password");
// Create initial context
DirContext ctx = new InitialDirContext(env);
// Specify the ids of the attributes to return
String[] attrIDs = {"cn","mail"};
SearchControls ctls = new SearchControls();
ctls.setReturningAttributes(attrIDs);
ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);
String filter = "(&(objectCategory=person)(mail=*abc.com))";
System.out.println("filter defined");
// Search for objects that have those matching attributes
NamingEnumeration answer = ctx.search("", filter,ctls);
System.out.println("get the answer!");
try {
System.out.println("inside try2");
while (answer.hasMore())
{
SearchResult sr = (SearchResult)answer.next();
System.out.println("<<" + sr.getName()+">>");
Attributes attrs = sr.getAttributes();
//System.out.println(sr.getName().matches("/^[0-9]/"));
System.out.println(attrs.get("cn").get());
System.out.println(attrs.get("mail").get());
isFound="1";
}
if (isFound=="1") {
System.out.println("User found in Active Directory!");
} else {
System.out.println("Opps ! User not found in Active Directory!");
}
answer.close();
}catch(PartialResultException e) {
System.out.println("catch 2");
e.printStackTrace();
}
// Close the context when we're done
ctx.close();
} catch (Exception e) {
System.out.println("catch 1");
e.printStackTrace();
}
}
public LDAPQuery() {
// Don't think I'm doing anything here
}
}
코드를 사용해 보셨습니까? 문제가 생겼니? 그렇다면 무엇입니까? –
우리는 자바 디버그 콘솔에있는 모든 사용자 이름을 인쇄했고 필요한 모든 사용자 이름이 제대로 인쇄되도록 코드를 실행했다. 하지만 문제는 이러한 이름을 이름 선택기로 가져 오는 것입니다. 이름 선택 도구는 bean 옵션 만 가지고 있지만 우리의 경우에는 이름을 제공하는 Java 에이전트입니다. –