环境tomcat,oracle,
因为web需要一些帐户信息和配置信息,而这些信息是保存在公司mail服务器的ldap目录上的,
因此在jsp中需要实现连接ldap,并从中获取基本的帐户信息,密码验证。期待大家给出一些指导和例子,代码。

解决方案 »

  1.   

    以前用j2se,使用netscape directory sdk弄过LDAP楼主可以去信息技术安全论坛看看
      

  2.   

    根据朋友的提议和java提供的ldap的包连接和查询如下:import java.util.Hashtable;import javax.naming.AuthenticationException;
    import javax.naming.Context;
    import javax.naming.NamingEnumeration;
    import javax.naming.NamingException;
    import javax.naming.directory.DirContext;
    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;
    /**
     * We will use this class to authenticate user's intranet ID and password
     * */public class UserAuthenticate {
    private String URL = "ldap://cnho-s1.cn.auchan.com/";
    private String BASEDN = "ou=cn,o=auchan";
    private String FACTORY = "com.sun.jndi.ldap.LdapCtxFactory";
    private LdapContext ctx = null;
    private Hashtable env = null;
    private Control[] connCtls = null;

    /**
     * connect to LDAP server anonymous
     * */ private void LDAP_connect(){
     env = new Hashtable();
            env.put(Context.INITIAL_CONTEXT_FACTORY,FACTORY);
            env.put(Context.PROVIDER_URL, URL+BASEDN);
            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());
            }
    }

      

  3.   

    测试是成功的。
    有共同需求的同学可以共同讨论下[email protected]