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. 学会怎样使用Jsp 内置标签、jstl标签库及自定义标签

    学习jsp不得不学习jsp标签,一般来说,对于一个jsp开发者,可以理解为jsp页面中出现的java代码越少,对jsp的掌握就越好,而替换掉java代码的重要方式就是使用jsp标签.  jsp标签的分 ...

  2. Lucene索引的初步创建

    从百度上知道的,Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的 ...

  3. 237. Delete Node in a Linked List(C++)

    237. Delete Node in a Linked Lis t Write a function to delete a node (except the tail) in a singly l ...

  4. [学习笔记]设计模式之Composite

    为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 在Composite(组合)模式中,用户可以使用多个简单的组件以形成较大的组件,而这些组件还可能进一步组合成更大的.它重要的特性是能够 ...

  5. 发现一款移动web端远程调试工具weinre , 哈哈!

    之前调试一直用的是chrome的远程调试,虽然效果很不错,但是在调试cordova,微信时多有不便. 在git上找工具时发现了这个:weinre,使用方法非常简单 附上git地址: https://g ...

  6. PHP实现简易的模板引擎

    PHP实现简易的模板引擎 1.MVC简介 MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式(详情自己百度): 1. Mode ...

  7. chmod 命令

    来源网址: http://www.2cto.com/os/201205/130236.html http://www.cnblogs.com/younes/archive/2009/11/20/160 ...

  8. [python] 视频008

    悬挂else if(hi>2) if(hi>7) printf('aaa') else printf('b') c语言中else会与就近if匹配 三元操作符 small=x if x< ...

  9. java子类实例初始化过程

    子类的实例化主要分为两个步骤: <1>.类相关静态内容 初始化: *先父类再子类:  1.父类的static属性:   2.父类的static块:   3.子类的static属性:   4 ...

  10. 十六进制字符串转化为byte数组

    工作上有这样的需求之前找了好多都不行,好不容易有个可以的赶紧留下来. 原址:http://blog.163.com/roadwalker@126/blog/static/113561841201013 ...