APP下载

使用JAVA获取LDAP服务器上全球地址簿

2015-01-02王志远

中国管理信息化 2015年23期
关键词:服务提供者个人信息服务器

王志远

(中欧国际工商学院,上海 201206)

0 前言

在开发一款用户针对学校的职工和师生的软件中,被要求实现一个比较有趣的需求。客户希望软件能实现对Outlook全球地址簿中人员信息的同步获取。通过这样的接口进行信息对接以后,配合以CRM系统的数据同步,一定程度上就能增强的学校内部各类人员信息的控制和管理。加强学校信息平台的基础搭建,最直接的便是方便了人员之间、人员和部门组织的交流。这样拥有云特征的通讯簿是具备“互联网+”时代特征的,并且是人们所需要的。像许多软件拥有比较良好的软件生态一样,这样做表明软件正在向这一良好趋势靠近。

在JAVA中有原生的API可以实现对LDAP的访问。其实也有工具,比如LDAPTemplate。它是基于SPRING开发的,虽然这个开源框架的操作方法和SPRING的JDBCTEMPLETE很相似,同时也传承了前者的一定的复杂性,更重要的是,由于一些IDE之间的支持上的问题,加上笔者对原生的API更加青睐。JNDI(命名和目录访问接口)将各种不同名字和目录服务的访问统一起来并且使用了相同的接口,这里就使用JNDI进行LDAP服务器的连接认证以及一些个人信息的读取。这样也更具通用性,也不需要特别的去下载一些JAR包。

1 初始化上下文,选择服务提供源

这其实有点像利用JNDI建立数据库的连接,Web开发的编程人员一定会很熟悉。创建一个环境变量的集合,其实是一个Hashtable,用以存放服务提供者的名字以及一些环境属性。其中的“com.sun.jndi.ldap.LdapCtxFactory”为 sun 的文件服务提供者。

Hashtable HashEnv= new Hashtable()

2 初始化上下文所需要的信息

这些信息会通过环境属性传递给服务提供者,也就是前面提到的。这些信息包括LDAP服务器的位置,以及认证信息。当然不同目录的客户端需要的连接信息会有所不同。

然后是初始化上下文。将之前构造的结构以参数形式传入。到这里如果一切顺利正常的话也完成了一个简单的连接认证。为 了 使 用 DirContext 对 象 , 要 导 入 javax.naming.directory.DirContext。

DirContextctx= new InitialDirContext(env)

3 对联系人数据进行收集

首先要创建查询对象控制器(Search Controls),并设置查询边界(Search Scope),增加搜索过滤器(Search Filter)设定针对用户个人信息进行查询,然后设置搜索节点并定制返回属性。

4 查询结果

调用 DirContext.search()查询上下文“OU= MultiShareDrives”中匹配的条目。最后对返回的NamingEnumeration对象进行遍历。其中也可以通过thumbnailPhoto的属性值,寻找到相应的内容,以文件输出流的形式生成图片文件,以此可以获取联系人的头像信息。

searchCtls.setReturningAttributes(returnedAtts);

NamingEnumeration answer= ctx.search(searchBase,searchFilter,searchCtls);

while (answer.hasMore()) {

SearchResultsr= (SearchResult)answer.next();

System.out.println(">>>"+ sr.getName());

printAttrs(sr.getAttributes());}

5 结语

以上介绍了通过JAVA获取LDAP服务器上AD的信息。当然JAVA提供了丰富的API,可以进行不仅仅如上所论述的简单查询,通过API同样可以对AD信息进行增加删除修改等操作。通过这些方法,能让软件系统与LDAP服务器更好的无缝对接,增强软件的实用性,更加有助于拓宽管理者的思路。

[1]张少敏,史占成,郭雅薇,等.改进的LDAP服务体系及其在电力系统PKI中的应用[J].继电器,2008,36(8):73-75.

[2]常潘,沈富可.基于 LDAP的校园网统一身份认证的实现[J].计算机工程,2007,33(5):281-282.

[3]任军.基于 LDAP 的目录服务综述[J].计算机应用研究,2005,22(5):8-10.

[4]陆吉仓,杨蒙,杨耀景.Active Directory在信息化管理中的应用与研究[J].中国信息化,2013(14).

[5]许峰.基于 Active Directory 的电台制播网组建、管理模式[J].西部广播电视,2013(10).

[6]赵天海,沈钧毅,齐勇,等.基于 JNDI的高可靠命名服务的研究[J].计算机工程,2006,32(6).

猜你喜欢

服务提供者个人信息服务器
如何保护劳动者的个人信息?
个人信息保护进入“法时代”
网络服务提供者的侵权责任研究
警惕个人信息泄露
通信控制服务器(CCS)维护终端的设计与实现
论网络服务提供者刑事责任的归责模式一一以拒不履行网络安全管理义务罪为切入点
中国服务器市场份额出炉
论网络服务提供者的侵权责任
得形忘意的服务器标准
计算机网络安全服务器入侵与防御