java对Ldap操作2

时间:2021-05-11 22:38:18

package ldap.pojo;
java对Ldap操作2
java对Ldap操作2import java.util.List;
java对Ldap操作2
java对Ldap操作2/**
java对Ldap操作2 * @author 张亮 
java对Ldap操作2 * ldap用户属性信息数据类
java对Ldap操作2 */
java对Ldap操作2public class LdapPersonInfo {
java对Ldap操作2
java对Ldap操作2    // ldap中用户的uid属性
java对Ldap操作2    private String uid;
java对Ldap操作2
java对Ldap操作2    // ldap中用户的givenName属性
java对Ldap操作2    private String firstName;
java对Ldap操作2
java对Ldap操作2    // ldap中用户的sn属性
java对Ldap操作2
java对Ldap操作2    private String lastName;
java对Ldap操作2
java对Ldap操作2    // ldap中用户的cn属性
java对Ldap操作2
java对Ldap操作2    private List cn;
java对Ldap操作2
java对Ldap操作2    // ldap中用户的telephonenumber属性
java对Ldap操作2    private String telephone;
java对Ldap操作2
java对Ldap操作2    // ldap中用户的facsimiletelephonenumber属性
java对Ldap操作2    private String fax;
java对Ldap操作2
java对Ldap操作2    // ldap中用户的mail属性
java对Ldap操作2    private String mail;
java对Ldap操作2
java对Ldap操作2    public LdapPersonInfo() {
java对Ldap操作2
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public LdapPersonInfo(String uid, String firstName, String lastName,
java对Ldap操作2            List cn, String telephone, String fax, String mail) {
java对Ldap操作2        this.uid = uid;
java对Ldap操作2        this.firstName = firstName;
java对Ldap操作2        this.lastName = lastName;
java对Ldap操作2        this.cn = cn;
java对Ldap操作2        this.telephone = telephone;
java对Ldap操作2        this.fax = fax;
java对Ldap操作2        this.mail = mail;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public String getFax() {
java对Ldap操作2        return fax;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public void setFax(String fax) {
java对Ldap操作2        this.fax = fax;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public String getFirstName() {
java对Ldap操作2        return firstName;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public void setFirstName(String firstName) {
java对Ldap操作2        this.firstName = firstName;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public String getLastName() {
java对Ldap操作2        return lastName;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public void setLastName(String lastName) {
java对Ldap操作2        this.lastName = lastName;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public String getMail() {
java对Ldap操作2        return mail;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public void setMail(String mail) {
java对Ldap操作2        this.mail = mail;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public String getTelephone() {
java对Ldap操作2        return telephone;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public void setTelephone(String telephone) {
java对Ldap操作2        this.telephone = telephone;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public String getUid() {
java对Ldap操作2        return uid;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public void setUid(String uid) {
java对Ldap操作2        this.uid = uid;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public List getCn() {
java对Ldap操作2        return cn;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    public void setCn(List cn) {
java对Ldap操作2        this.cn = cn;
java对Ldap操作2    }
java对Ldap操作2}
java对Ldap操作2

UserDaoLdapImpl for jdk1.42

java对Ldap操作2; i < dnlist.size(); i++) {
java对Ldap操作2            if (loginCheack(dnlist.get(i).toString(), password) == true) {
java对Ldap操作2                return true;
java对Ldap操作2            }
java对Ldap操作2        }
java对Ldap操作2        return false;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    /**
java对Ldap操作2     * 查询用户user dn
java对Ldap操作2     * 
java对Ldap操作2     * @param uid
java对Ldap操作2     *            用户uid
java对Ldap操作2     * 
java对Ldap操作2     * @return 用户dn列表,当前目录节点下可能存在多个相同uid的多个user dn
java对Ldap操作2     */
java对Ldap操作2    public List getUserDnByUid(String uid) {
java对Ldap操作2        // 获取DirContext对象
java对Ldap操作2        DirContext ctx = ldapTemplate.getContextSource().getReadOnlyContext();
java对Ldap操作2        // 存储用户dn
java对Ldap操作2        ArrayList dn = new ArrayList();
java对Ldap操作2        try {
java对Ldap操作2            SearchControls constraints = new SearchControls();
java对Ldap操作2            constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
java对Ldap操作2            NamingEnumeration en = ctx.search("", "uid=" + uid, constraints);
java对Ldap操作2            // 查询所有用户
java对Ldap操作2
java对Ldap操作2            while (en != null && en.hasMoreElements()) {
java对Ldap操作2                Object obj = en.nextElement();
java对Ldap操作2                if (obj instanceof SearchResult) {
java对Ldap操作2                    SearchResult si = (SearchResult) obj;
java对Ldap操作2                    // 获取dn并添加到查询列表
java对Ldap操作2                    si.getName();
java对Ldap操作2                    Hashtable ht = new Hashtable();
java对Ldap操作2                    // 获取已有的登陆信息
java对Ldap操作2                    ht = (Hashtable) ctx.getEnvironment();
java对Ldap操作2                    // 设置用户
java对Ldap操作2                    String str = ht.get(this.BASEDN_KEY).toString();
java对Ldap操作2                    dn.add(si.getName()+","+str);
java对Ldap操作2                }
java对Ldap操作2            }
java对Ldap操作2            ctx.close();
java对Ldap操作2        } catch (Exception e) {
java对Ldap操作2            e.printStackTrace();
java对Ldap操作2            try {
java对Ldap操作2                ctx.close();
java对Ldap操作2            } catch (Exception ee) {
java对Ldap操作2                ee.printStackTrace();
java对Ldap操作2            }
java对Ldap操作2        }
java对Ldap操作2        return dn;
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    /**
java对Ldap操作2     * ldap用户信息数据填充类 将获取的属性信息封装为LdapObject对象
java对Ldap操作2     * 
java对Ldap操作2     */
java对Ldap操作2    private class LdapObjectAttributesMapper implements AttributesMapper {
java对Ldap操作2        public Object mapFromAttributes(Attributes attrs)
java对Ldap操作2                throws NamingException {
java对Ldap操作2            LdapPersonInfo LdapObject = new LdapPersonInfo();
java对Ldap操作2            try {
java对Ldap操作2                // 获取并封装uid属性
java对Ldap操作2
java对Ldap操作2                LdapObject.setUid((String) getAttribute(attrs, "uid"));
java对Ldap操作2                // 获取并封装givenname属性
java对Ldap操作2
java对Ldap操作2                LdapObject.setFirstName((String) getAttribute(attrs,
java对Ldap操作2                        "givenname"));
java对Ldap操作2                // 获取并封装sn属性
java对Ldap操作2
java对Ldap操作2                LdapObject.setLastName((String) getAttribute(attrs, "sn"));
java对Ldap操作2                // 获取并封装cn属性
java对Ldap操作2
java对Ldap操作2                LdapObject.setCn(getMoreSameAttributes(attrs, "cn"));
java对Ldap操作2                // 获取并封装telephonenumber属性
java对Ldap操作2
java对Ldap操作2                LdapObject.setTelephone((String) getAttribute(attrs,
java对Ldap操作2                        "telephonenumber"));
java对Ldap操作2                // 获取并封装facsimiletelephonenumber属性
java对Ldap操作2
java对Ldap操作2                LdapObject.setFax((String) getAttribute(attrs,
java对Ldap操作2                        "facsimiletelephonenumber"));
java对Ldap操作2                // 获取并封装mail属性
java对Ldap操作2
java对Ldap操作2                LdapObject.setMail((String) getAttribute(attrs, "mail"));
java对Ldap操作2            } catch (NamingException n) {
java对Ldap操作2                n.printStackTrace();
java对Ldap操作2            }
java对Ldap操作2            // 返回封装后的用户对象
java对Ldap操作2            return LdapObject;
java对Ldap操作2        }
java对Ldap操作2
java对Ldap操作2        /**
java对Ldap操作2         * 从属性列表中获取指定的属性
java对Ldap操作2         * 
java对Ldap操作2         * 
java对Ldap操作2         * @param attrs
java对Ldap操作2         *            属性列表
java对Ldap操作2         * 
java对Ldap操作2         * @param attrName
java对Ldap操作2         *            需要获取的属性
java对Ldap操作2         * 
java对Ldap操作2         * @return 返回获取的属性值
java对Ldap操作2         * 
java对Ldap操作2         * @throws NamingException
java对Ldap操作2         */
java对Ldap操作2        private String getAttribute(Attributes attrs, String attrName)
java对Ldap操作2                throws NamingException {
java对Ldap操作2            Attribute attr = attrs.get(attrName);
java对Ldap操作2            // 若没有指定的属性返回空字符串
java对Ldap操作2
java对Ldap操作2            if (attr == null) {
java对Ldap操作2                return "";
java对Ldap操作2            } else {
java对Ldap操作2                return (String) attr.get();
java对Ldap操作2            }
java对Ldap操作2        }
java对Ldap操作2
java对Ldap操作2        /**
java对Ldap操作2         * 从属性列表中获取指定的属性的所有属性值
java对Ldap操作2         * 
java对Ldap操作2         * 
java对Ldap操作2         * @param attrs
java对Ldap操作2         *            属性列表
java对Ldap操作2         * 
java对Ldap操作2         * @param attrName
java对Ldap操作2         *            需要获取的属性
java对Ldap操作2         * 
java对Ldap操作2         * @return 返回获取的属性值
java对Ldap操作2         * 
java对Ldap操作2         * @throws NamingException
java对Ldap操作2         */
java对Ldap操作2        private List getMoreSameAttributes(Attributes attrs, String attrName)
java对Ldap操作2                throws NamingException {
java对Ldap操作2
java对Ldap操作2            Attribute attr = attrs.get(attrName);
java对Ldap操作2            List elelist = new ArrayList();
java对Ldap操作2            // 若没有指定的属性返回null
java对Ldap操作2            if (attr == null) {
java对Ldap操作2                return null;
java对Ldap操作2            } else {
java对Ldap操作2                // 获取当前属性的所有值,添加到返回列表中
java对Ldap操作2                Enumeration ent = attr.getAll();
java对Ldap操作2                while (ent.hasMoreElements())
java对Ldap操作2                    elelist.add(ent.nextElement().toString());
java对Ldap操作2                return elelist;
java对Ldap操作2            }
java对Ldap操作2        }
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2    private void dispPerson(LdapPersonInfo temp) {
java对Ldap操作2        System.out.println("-----------------------------");
java对Ldap操作2        System.out.println("User(uid: " + temp.getUid() + ") listing...");
java对Ldap操作2        System.out.println("First Name: " + temp.getFirstName());
java对Ldap操作2        System.out.println("Last Name: " + temp.getLastName());
java对Ldap操作2        System.out.println("Common Name: " + temp.getCn());
java对Ldap操作2        System.out.println("User ID: " + temp.getUid());
java对Ldap操作2        System.out.println("E-Mail: " + temp.getMail());
java对Ldap操作2        System.out.println("Phone: " + temp.getTelephone());
java对Ldap操作2        System.out.println("Fax: " + temp.getFax());
java对Ldap操作2        System.out.println("List completed.");
java对Ldap操作2        System.out.println("-----------------------------n");
java对Ldap操作2    }
java对Ldap操作2
java对Ldap操作2
java对Ldap操作2}

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

  1. JAVA使用Ldap操作AD域

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

  2. java对Ldap操作1

    package ldap;import java.util.List;import ldap.pojo.LdapPersonInfo;/** * access Ldap *  * @author 张亮 ...

  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. Mountains&lpar;CVTE面试题&rpar;解题报告

    题目大意: 用一个数组代表群山的高度.高度大的地方代表山峰,小的地方代表山谷.山谷可以容水.假设有一天下了大雨,求群山中总共可以容纳多少水? 如图所示情况,a代表该数组,总共可以容纳5个水. 解题思路 ...

  2. IOS设计模式浅析之简单工厂模式&lpar;SimpleFactory&rpar;

    概述 首先说明一下,简单工厂模式不属于23种GOF设计模式之一.它也称作静态工厂方法模式,是工厂方法模式的特殊实现.这里对简单工厂模式进行介绍,是为本系列后面的工厂方法和抽象工厂模式做一个引子. 定义 ...

  3. JM编解码264

    看到有人说JM解码编码264 尝试了一下http://iphome.hhi.de/suehring/tml/download/win7下 vs2010 编译后,得到编码解码可执行文件ldecod.ex ...

  4. 新增的html5中js获取方法

    一.querySelector   获取的选择器与jquery的选择器相同

  5. 老李分享:接电话之uiautomator 2

    case解释 首先要了解进入uiwatcher方法中的机制,是在你某个控件找不到的情况下会进入.但是你得保证进入以后处理完来电界面以后,这条case得保证正确,那么说明回来以后这个控件要能找到.刚开始 ...

  6. Shader 1:能接受阴影的透明shader

    第一次接触Shader,项目需要,直接说需求吧,需要一个透明并且能接受阴影的shader.unity系统自带的shader已经满足不了了.上一段代码吧 Shader "GreenArch/T ...

  7. python之路-----MySql操作

    一.概述 1.什么是数据库 数据库就是按照数据结构来组织.存储和管理数据的仓库.如我们创建的文件夹,就是一个数据库. 2.什么是mysql,oracle,access,sqlit等? 他们都是一款软件 ...

  8. mongoose入门

    概述 像Mysql和Mongodb这样的数据库,一般都是在命令行或者工具里面进行操作,如果想在node搭建的服务器上面操作,就必须要利用特殊的模块的.其中操作Mongodb数据库需要用到mongoos ...

  9. taglist-plus 安装使用

    taglist 可以查看文件中的 类,函数,变量等信息. 在.vimrc中添加: Plugin 'taglist-plus' 然后打开vim编辑器 PluginInstall 使用: 打开taglis ...

  10. Objective-C与JavaScript交互的那些事

    http://www.cocoachina.com/ios/20160127/15105.html 最近公司的运营瞎搞了个活动,其活动要服务端提供数据支持,web前端在微信公众账号内作为主要的运营阵地 ...