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

java对Ldap操作1的更多相关文章

  1. JAVA使用Ldap操作AD域

    项目上遇到的需要在集成 操作域用户的信息的功能,第一次接触ad域,因为不了解而且网上其他介绍不明确,比较费时,这里记录下. 说明: (1). 特别注意:Java操作查询域用户信息获取到的数据和域管理员 ...

  2. java对Ldap操作2

    package ldap.pojo;import java.util.List;/** * @author 张亮  * ldap用户属性信息数据类 */public class LdapPersonI ...

  3. java对Ldap操作4

    applicationContext.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE  ...

  4. Java下LDAP操作的资料

    话说LDAP真是个诡异的protocol(或者数据库,或者服务,whatever...),没有一个特别形象的spec.这里列出一些筛选出的还可以的文档,都是oracle的: https://docs. ...

  5. java对Ldap操作3

    "));    }}

  6. OpenLDAP使用疑惑解答及使用Java完成LDAP身份认证

    导读 LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务.目录服务是一种特殊的数据库系统,其专门针对读取,浏览 ...

  7. 利用LDAP操作AD域

    LDAP操作代码样例  初始化LDAP 目录服务上下文 该例子中,我们使用uid=linly,ou=People,dc=jsoso,dc=net这个账号,链接位于本机8389端口的LDAP服务器(ld ...

  8. Java Spring mvc 操作 Redis 及 Redis 集群

    本文原创,转载请注明:http://www.cnblogs.com/fengzheng/p/5941953.html 关于 Redis 集群搭建可以参考我的另一篇文章 Redis集群搭建与简单使用 R ...

  9. Java的JDBC操作

    Java的JDBC操作 [TOC] 1.JDBC入门 1.1.什么是JDBC JDBC从物理结构上来说就是java语言访问数据库的一套接口集合,本质上是java语言根数据库之间的协议.JDBC提供一组 ...

随机推荐

  1. 如何在swift中实现oc中的分类

    在oc中为了增强已有类的功能,我们经常使用分类.使用分类,我们可以在不破坏原有类的结构的前提下,对原有类进行模块化的扩展. 但是在swift中没有分类这种写法了.相对应的是swift中只有扩展(Ext ...

  2. boost::unordered_map 和 std::map 的效率 与 内存比较

    例子链接:http://blog.csdn.net/gamecreating/article/details/7698719 结论: unordered_map 查找效率快五倍,插入更快,节省一定内存 ...

  3. 关于全局变量和函数,在其他类中调用问题,extern关键字

    1个工程下有几个类文件,和1个全局的文件comm.h, comm.h中存放了这几个类同时需要的变量和同时调用的函数. 当时,我只在comm.h中定义: int  commData1: vector&l ...

  4. secureCRT使用小贴士

    (一)使用WIN键盘 在securecrt界面:工具→键映射编辑器,在弹出的键盘中点击“home”,会弹出一个窗口,在“发送字符串”中输入:\033[1~ 另存为securecrt安装根目录下的Key ...

  5. 计算机视觉的matlab工具箱及MVG等

    MATLAB Functions for Multiple View Geometry Peter Kovesi's Matlab functions for Computer Vision Jean ...

  6. Java实现Http服务器(四)

    (1)HTTPServer的监听启动 sun.net.httpserver.ServerImpl类中启动了Socket监听,ServerImpl的内部类Dispatch类启动了Http服务器的监听 / ...

  7. 写的一个Makefile

    #========================================================================= # # MAKE FILE FOR ROCKY # ...

  8. Arrays.fill方法的陷阱

            昨晚调试程序时发现的,该方法不能初始化二维数组,不过当时没有报CE,提交的时候也是WA:今早上单独测试该方法,也没有CE,不过运行时异常.切记

  9. php使用domdocument读取xml文件

    使用domdocument读取xml文件需要用到以下几个方法和属性: 方法: 1:读取xml文件:load() 2:获取标签的对象数组:getElementByTagName() 3:对象数组的索引: ...

  10. Win8.1、Office2013一键激活工具

    Win8.1.Office2013一键激活工具 KMSpico V7.0 是一款激活Win8.Windows8.1和Office2013的工具,由国外网友heldigard基于KMSEmulator制 ...