package security;
import java.util.Hashtable;
import java.util.Enumeration;
import javax.naming.*;
import javax.naming.directory.*;
public class JDSAuthentication {
public static
String INITCTX = "com.sun.jndi.ldap.LdapCtxFactory";
public static String MY_HOST = "ldap://yoda:391";
public static String MY_SEARCHBASE = "dc=isdintegration,dc=com";
public static String MY_FILTER = "jabberID=test1@yoda";
public static String MGR_DN = "cn=directory manager";
public static String MGR_PW = "passwordadmin";
public static void main(String[] args) {
try{
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,INITCTX);
env.put(Context.PROVIDER_URL,MY_HOST);
env.put(Context.SECURITY_AUTHENTICATION,"simple");
env.put(Context.SECURITY_PRINCIPAL,MGR_DN);
env.put(Context.SECURITY_CREDENTIALS,MGR_PW);
DirContext ctx = new InitialDirContext(env);
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
//performs the actual search
//We give it a searchbase, a filter and the contraints containing the scope
//of the search
NamingEnumeration results = ctx.search(MY_SEARCHBASE,MY_FILTER,constraints);
//now stop through the search results
while(results != null && results.hasMore()){
SearchResult sr = (SearchResult)results.next();
String dn = sr.getName();
System.out.println("Distinguished name is "+dn);
Attributes attrs = sr.getAttributes();
for(NamingEnumeration ne = attrs.getAll();ne.hasMoreElements()
{
Attribute attr = (Attribute) ne.next();
String attrID = attr.getID();
System.out.println(attrID+" :");
for(Enumeration vals = attr.getAll();vals.hasMoreElements()
{
System.out.println("\t"+vals.nextElement());
}
}
System.out.println("\n");
}
}catch(Exception ex){
ex.printStackTrace();
System.exit(1);
}
}
}