一种java语言对ldap的访问操作的方法及系统的制作方法

文档序号:6356390阅读:194来源:国知局
专利名称:一种java语言对ldap的访问操作的方法及系统的制作方法
技术领域
本发明涉及LDAP (轻量目录访问协议)访问和操作技术,尤其是一种JAVA语言对 LDAP的访问操作的方法及系统。
背景技术
目录服务本质上是一种基于客户/服务器模型的信息查询服务,人们可以使用该服务按名称查找对象或者像使用黄页一样,可使用它们查找服务。由于网络上,特别是互联网中有各型各类的主机和资源,分别杂散在网络中,为了得到相关的服务,需要利用目录服务来访问这些主机和资源。它依赖于目录数据库,与关系数据库相比,目录数据库更擅长查询。目录数据库中的数据读取和查询效率非常高,比关系型数据库能够快一个数量级。但是它的数据写入效率较低,适用于数据不需要经常改动,但需要频繁读出的情况,最典型的就是电子邮件系统的用户信息。LDAP 目录是目录服务的一种,LDAP(Light Weight Directory Access Protocol, 轻量目录访问协议)属于是一种用于访问目录的标准,用来发布目录信息到许多不同资源的协议,是针对以X. 500 (X. 500是一个将局部名录服务连接起来,构成全球分布式的名录服务系统的协议)目录为主的目录服务的前端访问协议,是X. 500目录的访问网关。由于 X. 500原来不是为TCP/IP网络设计的,而目录服务的最大使用者恰恰是TCP/IP客户,因此, LDAP就被设计成使用TCP/IP访问OSI (0SI是Open System hterconnect的缩写,意为开放式系统互联)目录服务的服务协议,而随着互联网成为网络的主流,LDAP也成为一个具备目录的大部分服务的协议。由于LDAP所具有的查询效率高、树状的信息管理模式、分布式的部署框架以及灵活而细腻的访问控制,使LDAP广泛地应用于基础性、关键性信息的管理,如用户信息、网络资源信息等。现有技术中,JAVA语言访问和操作LDAP的方法和系统中包括Sun公司的JNDI (Java Naming and Directory Interface), ^ Java pIllMT-T^fo] LDAP StJ APKapplication programming interface,应用程序接口),是为了 Java程序访问命名服务和目录服务而提供的统一 API。开发人员使用JNDI完成与LDAP服务器之间的通信,即用JNDI来连接LDAP 并完成访问和操作,而不需要和具体的目录服务产品特性打交道。由于JNDI可以实现不依赖具体厂商的LDAP函数库,只需使用其API就能同时连接到多个命名或目录服务上从而访问不同种类的服务。因此JNDI中的API的实现就会较为复杂,实际上JNDI中的API就是依靠多个类来实现的,如果要实现JNDI对LDAP访问和操作,就需要深入JNDI内部对特定的参数进行修改,这在拥有庞大代码量的业务项目中会显得极其不方便,对LDAP的使用效率很低。

发明内容
本发明所要解决的技术问题是提供一种JAVA语言对LDAP的访问操作的方法及系统,目的在于简化现有技术中对LDAP访问和操作,提高对LDAP的访问和操作的效率。
本发明解决上述技术问题的技术方案如下
一种JAVA语言对LDAP的访问操作的系统,它包括LDAP客户端、工具类和LDAP服务器, 客户端,封装JNDI,设置配置文件及参数,客户端通过连接池连接LDAP服务器; LDAP服务器,提供轻量目录服务;
工具类,包括封装JNDI的LdapOperUtils. java操作工具、封装LDAP Filter的写法的 LDAP Filter格式类SQL字符串转换工具和自动加载配置文件的类继承BaseLdapDao。一种JAVA语言对LDAP的访问操作的方法,应用于需要通过LDAP协议使用具体目录服务的业务,包括
步骤1,客户端封装JNDI,设置LdapCons. properties属性的配置文件; 步骤2,客户端导入工具类,将jar文件和依赖jar文件引入JAVA工程中; 步骤3,客户端根据配置文件配置参数,包括LDAP连接参数或LDAP双机配置参数,并将所述配置文件放入JAVA工程类路径;
步骤4,LDAP服务器通过LDAP的类继承BaseLdapDao自动加载所述配置文件,初始化 LDAP的访问环境及LDAP连接池;
步骤5,客户端从连接池获取连接,从而获取与此连接对应的LDAP的类继承配置文件中的连接对象,对LDAP进行访问和操作;
步骤6,客户端使用已封装的JNDI提供的API,对LDAP进行相应的操作; 步骤7,对LDAP进行访问和操作结束,归还连接对象。进一步的,所述步骤1为通过LdapOperUtils. java操作工具,封装JNDI实现LDAP 访问通用工具的连接、关闭以及操作。进一步的,所述步骤2包括以下子步骤
步骤2. 1 将jar文件和依赖jar文件复制到JAVA工程的Lib目录中; 步骤2. 2 将jar文件和依赖jar文件设置到JAVA工程类路径classpath中。进一步的,所述步骤5为调用“this. getContextO ”,从BaseLdapDao中获取连接对象。进一步的,所述步骤7为调用“this. closeContextO”,归还连接对象。进一步的,所述LDAP双机配置参数包括主LDAP服务器参数和从LDAP服务器参数。进一步的,所述步骤1还包括,通过LDAP Filter格式类SQL字符串转换工具,针对LDAP Filter的写法进行封装。本发明的有益效果是弥补了原来传统方式的不足,简化JAVA语言访问和操作 LDAP配置、提高JAVA程序访问和操作LDAP的效率、提高JAVA程序访问和操作LDAP服务的可靠性、提供工具类封装,简化操作提高开发效率。


图1为本发明流程图。
具体实施例方式以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。如图1所示,一种JAVA语言对LDAP的访问操作的系统,它包括LDAP客户端、工具类和LDAP服务器,
客户端,封装JNDI,设置配置文件及参数,客户端通过连接池连接LDAP服务器; LDAP服务器,提供轻量目录服务;
工具类,包括封装JNDI的LdapOperUtils. java操作工具、封装LDAP Filter的写法的 LDAP Filter格式类SQL字符串转换工具和自动加载配置文件的类继承BaseLdapDao。一种JAVA语言对LDAP的访问操作的方法,应用于需要通过LDAP协议使用具体目录服务的业务,包括
步骤1,客户端封装JNDI,设置LdapCons. properties属性的配置文件; 步骤2,客户端导入工具类,将jar文件和依赖jar文件引入JAVA工程中; 步骤3,客户端根据配置文件配置参数,包括LDAP连接参数或LDAP双机配置参数,并将所述配置文件放入JAVA工程类路径; 配置文件参数程序如下
#Ldap Connection Config #
ldap. baseDn=dc=sitech, dc=com #################################################
#############Master Ldap Server Conf #################################################
ldap.master.url=ldap://172. 16. 9.23:8000/ldap.master.adminUID=cn=Directory managerldap.master.adminPWD=NGFzaXRlY2g=ldap.master.sslTrustStore=ldap.master.ssITrustStorePassword=ldap.master.securityProtocol=ldap.master.IdapTimeOut = 3000ldap.master.IdapIsPool = true
#ldap. master. poolUse: is using pool ldap. master. poolUse = true ldap. master. poolTimeOut = 3000
ldap. master. poolActiveNum = 100 #################################################
#############BackUp Ldap Server Conf #################################################
ldap. backup, ur1=1dap://localhost:8000/ ldap. backup. adminUID=cn=Directory manager ldap. backup. adminPWD=NGFzaXRlY2g= ldap. backup. sslTrustStore=ldap. backup. sslTrustStorePassword= ldap. backup. securityProtocol= ldap. backup. IdapTimeOut = 3000 ldap. backup. IdapIsPool = true ldap. backup. poolUse = true ldap. backup. poolTimeOut = 3000 ldap. backup. poolActiveNum =400
步骤4,LDAP服务器通过LDAP的类继承BaseLdapDao自动加载所述配置文件,初始化 LDAP的访问环境及LDAP连接池;
步骤5,客户端从连接池获取连接,从而获取与此连接对应的LDAP的类继承配置文件中的连接对象,对LDAP进行访问和操作;
步骤6,客户端使用已封装的JNDI提供的API (包括LDAP的各种操作增加、删除、条件查询、修改、验证等API),对LDAP进行相应的操作; 步骤7,对LDAP进行访问和操作结束,归还连接对象。所述步骤1为通过LdapOperUtiIs. Java操作工具,封装JNDI实现LDAP访问通用工具的连接、关闭以及操作。所述步骤2包括以下子步骤
步骤2. 1 将jar文件和依赖jar文件复制到JAVA工程的Lib目录中; 步骤2. 2 将jar文件和依赖jar文件设置到JAVA工程类路径classpath中。所述步骤5为调用“this. getContext () ”,从BaseLdapDao中获取连接对象。所述步骤7为调用“this. closeContext () ”,归还连接对象。所述LDAP双机配置参数包括主LDAP服务器参数和从LDAP服务器参数。本发明通过配置文件进行LDAP服务的双机配置,在配置文件中可以配置主LDAP 服务器参数和从LDAP服务器参数,程序默认使用主LDAP服务器配置参数进行访问和操作, 当主LDAP服务器连接发生异常时,自动切换至从LDAP服务器,当主LDAP服务器恢复正常时自动完成切换。所述步骤1还包括,通过LDAP Filter格式类SQL字符串转换工具,针对LDAP Filter的写法进行封装。写Filter时可以使用类SQL方式编写,例如“Fl=l AND F2=2 OR (f3=3 OR f4=4) AND NOT f5=5”,通过SQL字符串转换工具自动转换为LDAP Filter字符串,简化了 LDAP Filter的使用,提高开发效率。LDAP通用操作jar文件以及依赖jar文件列表(说明依赖的jar文件需要使用列表所列出的版本以及之上版本)commons-colIections-3. 1. jar、commons-lang-2. 4. jar、 commons-poo1-1. 2. jar、log4j-l. 2. 13. jar、commons-logging-1. 0. jar。访问LDAP程序如下
Il--------------------DAO和实现例子代码-------------------
*YourDaoLdapImp1

*
Title YourDaoLdapImp1</p>
6氺
Description: YourDaoLdapImp1</p> 氺
Copyright: Copyright (c) 2009</p>
*
Company: SI-TECH </p> 氺 Oauthor yourName
*Oversion 1. O
*Ocreatetime time

public class YourDaoLdapImp1 extends BaseLdapDao implements
YourDaoInterface { // yourMethod
public boolean yourMethod(object param) throws YourException {
η---------获取连接操作处理开始------------
ConnectionObject connectionObject = this. getContext (); DirContext context = (DirContext) connectionObject. getConnection ()
Il---------获取LDAP连接操作处理结束------------
try {
Il do something here
Il此处使用封装的JNDI提供的API进行业务逻辑编写 Il例如
Il LdapOperUtils. searchContextOne (context, // dn, filter);
Il LdapOperUtils. deleteStationSubtreeScope Il(context, dn, null);
} catch (LDAPException e) { } finally {
Il finally close
Il使用过后务必调用关闭方法
this. closeContext(connectionObject)
ι
Il other methods.
ι
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种JAVA语言对LDAP的访问操作的系统,其特征在于,它包括LDAP客户端、工具类和LDAP服务器,客户端,封装JNDI,设置配置文件及参数,客户端通过连接池连接LDAP服务器; LDAP服务器,提供轻量目录服务;工具类,包括封装JNDI的LdapOperUtils. java操作工具、封装LDAP Filter的写法的 LDAP Filter格式类SQL字符串转换工具和自动加载配置文件的类继承BaseLdapDao。
2.—种JAVA语言对LDAP的访问操作的方法,其特征在于,包括 步骤1,客户端封装JNDI,设置LdapCons. properties属性的配置文件; 步骤2,客户端导入工具类,将jar文件和依赖jar文件引入JAVA工程中;步骤3,客户端根据配置文件配置参数,包括LDAP连接参数或LDAP双机配置参数,并将所述配置文件放入JAVA工程类路径;步骤4,LDAP服务器通过LDAP的类继承BaseLdapDao自动加载所述配置文件,初始化 LDAP的访问环境及LDAP连接池;步骤5,客户端从连接池获取连接,从而获取与此连接对应的LDAP的类继承配置文件中的连接对象,对LDAP进行访问和操作;步骤6,客户端使用已封装的JNDI提供的API,对LDAP进行相应的操作; 步骤7,对LDAP进行访问和操作结束,归还连接对象。
3.根据权利要求2所述的一种JAVA语言对LDAP的访问操作的方法,其特征在于,所述步骤1为通过LdapOperUtiIs. java操作工具,封装JNDI实现LDAP访问通用工具的连接、 关闭以及操作。
4.根据权利要求2所述的一种JAVA语言对LDAP的访问操作的方法,其特征在于,所述步骤2包括以下子步骤步骤2. 1 将jar文件和依赖jar文件复制到JAVA工程的Lib目录中; 步骤2. 2 将jar文件和依赖jar文件设置到JAVA工程类路径classpath中。
5.根据权利要求2所述的一种JAVA语言对LDAP的访问操作的方法,其特征在于,所述步骤5为调用“this. getContext (),,,从BaseLdapDao中获取连接对象。
6.根据权利要求2所述的一种JAVA语言对LDAP的访问操作的方法,其特征在于,所述步骤7为调用“this. closeContext () ”,归还连接对象。
7.根据权利要求2所述的一种JAVA语言对LDAP的访问操作的方法,其特征在于,所述 LDAP双机配置参数包括主LDAP服务器参数和从LDAP服务器参数。
全文摘要
本发明涉及一种JAVA语言对LDAP的访问操作的方法,包括步骤1,封装JNDI,设置LdapCons.properties属性的配置文件;步骤2,导入工具类,将jar文件和依赖jar文件引入JAVA工程中;步骤3,根据配置文件配置参数,包括LDAP连接参数或LDAP双机配置参数,并将所述配置文件放入JAVA工程类路径;步骤4,通过LDAP的类继承BaseLdapDao自动加载所述配置文件,初始化LDAP的访问环境及LDAP连接池;步骤5,从连接池获取连接,从而获取与此连接对应的LDAP的类继承配置文件中的连接对象,对LDAP进行访问和操作;步骤6,使用已封装的JNDI提供的API,对LDAP进行相应的操作;步骤7,对LDAP进行访问和操作结束,归还连接对象。本发明的有益效果是提高JAVA程序访问和操作LDAP的效率、提高JAVA程序访问和操作LDAP服务的可靠性。
文档编号G06F17/30GK102306147SQ20111006600
公开日2012年1月4日 申请日期2011年3月18日 优先权日2011年3月18日
发明者樊学峰, 贾艳斌, 魏鼎 申请人:北京神州数码思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1