import java.security.MessageDigest;
import java.util.Hashtable;
import javax.naming.AuthenticationException;
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.Control;
import javax.naming.ldap.InitialLdapContext;
import javax.naming.ldap.LdapContext;
public class Rz {
private
String URL = "ldap://10.50.143.19:389/";
private
String BASEDN = "uid=jeff,ou=people,dc=dlw,dc=com";
private
String FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";
private
LdapContext ctx = null;
private
Control[] connCtls = null;
//构造,连接LDAP
public
Rz(){
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, FACTORY);
env.put(Context.PROVIDER_URL, URL + BASEDN);// LDAP server
env.put(Context.SECURITY_AUTHENTICATION, "simple");
try {
ctx = new InitialLdapContext(env, connCtls);
} catch (javax.naming.AuthenticationException e) {
System.out.println("Authentication faild: " + e.toString());
} catch (Exception e) {
System.out.println("Something wrong while authenticating: " +
e.toString());
}
}
//根据email获取DN
private
String getUserDN(String email) {
String userDN = "";
try {
SearchControls constraints = new SearchControls();
constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration en = ctx.search("", "mail=" + email,
constraints); // The
// UID