java对Ldap操作1

前一阵学习了ldap,用java小试了一下,只实现java对ldap的查找、登陆功能,传上来供初级学者参考:

UserDaoLdap: 

package ldap;

import java.util.List;

import ldap.pojo.LdapPersonInfo;

/**
 * access Ldap
 * 
 * 
@author 张亮
 
*/

public interface UserDaoLdap {
    
/**
     * 获得所有的用户名(ldap称cn),可根据第二个参数指定返回值是否重复

     * 
     * 
@param scope
     *            取值为0、1、2,分别对应 SearchControls 类 OBJECT_SCOPE, ONELEVEL_SCOPE,
     *            SUBTREE_SCOPE三个查询范围,分别代表 当前对象查询、当前节点下对象查询、当前节点所有子目录查询
     * 
     * 
@param distinct
     *            true,去掉结构中的重复值;false 允许结果中包含重复值

     * 
@return 查询范围下返回的cn列表
     
*/

    
public List getAllPersonNames(int scope, boolean distinct);

    
/**
     * 查询指定范围下的所有用户信息

     * 
     * 
@param scope
     *            取值为0、1、2,分别对应 SearchControls 类 OBJECT_SCOPE, ONELEVEL_SCOPE,
     *            SUBTREE_SCOPE三个查询范围,分别代表 当前对象查询、当前节点下对象查询、当前节点所有子目录查询
     * 
     * 
@return 查询范围下返回的所有用户信息列表

     
*/

    
public List getAllPersons(int scope);

    
/**
     * 根据Uid查询用户信息,*代表任意长度的任意字符

     * 
     * 
@param uid
     *            用户的uid
     * 
@param scope
     *            取值为0、1、2,分别对应 SearchControls 类 OBJECT_SCOPE, ONELEVEL_SCOPE,
     *            SUBTREE_SCOPE三个查询范围,分别代表 当前对象查询、当前节点下对象查询、当前节点所有子目录查询
     * 
     * 
@return 用户信息
     
*/

    
public List  getPersonByUid(String uid, int scope);

    
/**
     * 查询包含当前Cn信息的所有用户,*代表任意长度的任意字符

     * 
     * 
@param cn
     *            用户的cn
     * 
@param scope
     *            取值为0、1、2,分别对应 SearchControls 类 OBJECT_SCOPE, ONELEVEL_SCOPE,
     *            SUBTREE_SCOPE三个查询范围,分别代表 当前对象查询、当前节点下对象查询、当前节点所有子目录查询
     * 
     * 
@return 用户列表
     
*/

    
public List getPersonByCn(String cn, int scope);

    
/**
     * 使用LdapPersonInfo类对象实现复合查询,属性中可使用通配符*,*代表任意长度的任意字符

     * 
     * 
@param ldapPersonInfo
     *            查询条件
     * 
@param scope
     *            取值为0、1、2,分别对应 SearchControls 类 OBJECT_SCOPE, ONELEVEL_SCOPE,
     *            SUBTREE_SCOPE三个查询范围,分别代表 当前对象查询、当前节点下对象查询、当前节点所有子目录查询
     * 
     * 
@return 用户列表
     
*/

    
public List getPersonByPersonEnty(
            LdapPersonInfo ldapPersonInfo, 
int scope);

    
/**
     * 根据dn查找用户,dn为base dn 的相对dn.(若basedn为:dc=koal,dc=com,user
     * dn为:uid=123,dc=koal,dc=com,则此处只需要提供 123 作为参数)
     * 
     * 
@param dn
     *            相对base dn的dn参数
     * 
@return 用户信息
     
*/

    
public LdapPersonInfo getLdapObjectByDn(String dn);

    
/**
     * 验证用户登陆
     * 
     * 
@param uid
     *            用户uid
     * 
@param password
     *            用户密码
     * 
     * 
@return 是否登陆成功
     
*/

    
public boolean userLogin(String uid, String password);

    
/**
     * 查询用户user dn
     * 
     * 
@param uid
     *            用户uid
     * 
     * 
@return 用户dn列表,当前目录节点下可能存在多个相同uid的多个user dn
     
*/

    
public List getUserDnByUid(String uid);
}

 

  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章