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);
}

 

  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值