CN104243552B - 基于ldapv3协议的快速统计目录子树条目数的方法 - Google Patents
基于ldapv3协议的快速统计目录子树条目数的方法 Download PDFInfo
- Publication number
- CN104243552B CN104243552B CN201410409584.8A CN201410409584A CN104243552B CN 104243552 B CN104243552 B CN 104243552B CN 201410409584 A CN201410409584 A CN 201410409584A CN 104243552 B CN104243552 B CN 104243552B
- Authority
- CN
- China
- Prior art keywords
- catalogue
- subtree
- entry number
- service side
- entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于LDAPV3协议的快速统计目录子树条目数的方法,包括如下步骤:目录服务方在目录添加或删除条目时,在条目DN的索引文件中记录或更新条目所在子树的一级子条目数和所有子条目数;目录客户方向目录服务方发出符合LDAPV3协议的目录子树条目数统计的扩展操作请求;目录服务方从条目DN的索引文件中获取该子树的条目数,并通过扩展操作的应答操作返回给目录客户方;以及目录客户方解析出目录子树的条目数。本发明具有的积极效果是:避免了服务方通过去遍历子树来得到子树条目数的方式,大幅加快了子树条目数统计的速度,避免了服务方因统计条目数导致的服务性能下降;并且避免搜索操作由于返回条目数限制而造成无法返回结果的问题。
Description
技术领域
本发明涉及目录服务系统领域,尤其是涉及一种基于LDAPV3协议的快速统计目录子树条目数的方法。
背景技术
随着互联网的发展,对各种数据资源的标准化管理和高效存取的要求变得十分迫切,目录服务技术就是在这样的背景下产生并迅速发展的新技术。目录服务系统是用于网络数据资源的分布式存储和快速查询的新型专用数据库系统,是专门为那些检索频率大大高于数据更新频率的信息服务而设计的。比如图书馆图书索引系统、网络资源管理系统、组织人员管理系统、单点登录系统等。
目录服务系统一般都遵循轻型目录访问协议LDAPv3,从而能够保持应用的标准性和独立性。该协议中规定了目录的数据单元-条目,并且规定了操作条目数据的九个基本操作,包括绑定,添加,修改,删除,搜索,比较,解绑定等操作,控制和扩展也是LDAPv3协议的组成部分,目的是在基本的九个操作之外,增加服务方能够处理的操作请求的数量和范围。
所述目录子树条目数的统计和获取,通常在客户方实现,服务方只返回搜索条目的结果。采用的方法是客户方向服务方发送搜索操作,给出搜索所需的参数,包括baseDn,搜索范围,过滤条件,返回属性,是否仅返回属性名。服务方得到搜索请求,解析搜索请求中的参数,先找到baseDn,然后按照范围和条件进行搜索,得到所有符合条件的条目,再根据最后的2个参数决定返回给客户方的搜索结果内容。
统计子树条目数时,设置的搜索参数,就是要把统计目录子树的条目DN作为baseDn,搜索范围为subtree,过滤条件为objectClass=*,返回属性可以填NO_ATTR,代表只返回条目的DN,最后的参数设置成false。
为了执行统计条目数的操作,客户方和服务方的交互必须执行如图1所示的以下过程:
步骤101,客户方使用主机ip和端口号连接到目录的服务方;
步骤102,客户方用目录用户DN和密码(实际是该DN对应的目录条目的userPassword属性值),使用LDAPv3协议认证到目录服务方;服务方返回认证的结果给客户方;
步骤103,客户方设置全局的操作约束及控制,比如设置sizelimit等;
步骤104,客户方发送搜索操作,使用图1所示的参数;
步骤105,服务方解析搜索操作,得到搜索参数,并完成搜索,返回搜索结果给客户方(条目的结果集,只含条目的DN);
步骤106,客户方循环处理搜索结果,统计条目数。
由以上操作可以看出,所述统计子树条目数,完全使用的是目录的基本操作中的搜索操作,服务方也是使用的普通搜索操作所做的遍历条目,返回结果的过程。当条目数较多时,将严重影响统计条目数的效率;
此外,当该子树下的条目较多时,非超户的目录认证用户的搜索操作,还将受到返回条目数的限制,因此搜索操作可能会达到条目数限制的错误,从而导致该子树的条目数统计操作无法完成。
发明内容
本发明要解决的问题是实现一种基于LDAPV3协议的快速统计目录子树条目数的方法,尤其适合于受目录基本搜索操作限制的场合,比如使用普通目录用户认证时,子树条目数超过了目录返回条目数限制的问题。
为解决上述技术问题,本发明采用的技术方案是:
基于LDAPV3协议的快速统计目录子树条目数的方法,所述方法包括如下步骤:
1)目录服务方在目录添加或删除条目时,在条目DN的索引文件中记录或更新条目所在子树的一级子条目数和所有子条目数;
2)目录客户方连接到目录服务方,并进行认证;
3)目录客户方得到目录服务方返回的认证成功后,目录客户方向目录服务方发出符合LDAPV3协议的目录子树条目数统计的扩展操作请求;
4)目录服务方响应上述扩展操作请求,快速地从条目DN的索引文件中获取该子树的条目数,并通过扩展操作的应答操作返回给目录客户方;以及
5)目录客户方从目录服务方返回的应答扩展操作中解析出目录子树的条目数。
进一步的,所述步骤3)中发送扩展操作请求时,将统计的目录子树父节点的完整DN作为扩展操作的参数传给目录服务方,完整DN的字符串长度要大于0小于2046,从而保证目录服务方返回该子树的条目数。
进一步的,所述步骤4)中,目录服务方需要对目录子树父节点的完整DN的长度进行验证,完整DN的字符串长度要大于0小于2046,否则返回协议错误。
进一步的,所述步骤4)目录服务方响应目录客户方的目录子树条目数统计的扩展操作请求前,需检查目录客户方的认证和权限,如果不是认证客户或是没有对该子树的访问权限,则返回错误。
进一步的,所述目录服务方需处理实时统计问题,对统计、添加、删除操作进行同步处理。
进一步的,所述目录客户方在接收扩展操作时,需捕获各种返回的错误并处理,需把目录服务方返回字节数组转变为统计数。
本发明具有的优点和积极效果是:
该方法避免了服务方通过去遍历子树来得到子树条目数的方式,大幅加快了子树条目数统计的速度,避免了服务方因统计条目数导致的服务性能下降;并且可以避免搜索操作由于返回条目数限制而造成无法返回结果的问题;从而有效提高目录的操作效率。
附图说明
图1是现有的目录子树统计条目数方法流程图;
图2是本发明一实施例快速统计目录子树条目数的方法流程图;
图3是本发明一实施例服务方处理流程图;
图4为本发明一实施例客户方处理流程图。
具体实施方式
下面结合附图2至4对本发明的具体实施例做详细说明。
因为在LDAPv3协议中,规定扩展操作是一个单独的操作,扩展操作中通过OID可区分不同的功能,这种方式保证了操作的可扩展性,即可以通过该方式实现LDAPv3协议中没有定义的所有单独的操作。
本发明采用的设计思想是:目录条目添加或删除时,在服务方的DN索引中记录条目所在子树的一级子条目数,及所有的子条目数,当客户方请求返回统计的子树条目数时,从服务方的DN索引中快速得到子树条目数,并返回给客户方。由于使用单独的扩展操作得到子树条目数,因此可以在操作时不受目录搜索操作的返回条目数限制。
如图2所示,本发明基于LDAPV3协议的快速统计目录子树条目数的方法,所述方法包括如下步骤:
S201、目录服务方在目录添加或删除条目时,在条目DN的索引文件中记录或更新条目所在子树的一级子条目数和所有子条目数;
S202、目录客户方连接到目录服务方,并进行认证;具体实现时,目录客户方使用主机ip和端口号连接到目录服务方,并用目录用户DN和密码(实际是该DN对应的目录条目的userPassword属性值),使用LDAPv3协议认证到目录服务方;
S203、目录客户方得到目录服务方返回的认证成功后,目录客户方向目录服务方发出符合LDAPV3协议的目录子树条目数统计的扩展操作请求,参数为目录子树的baseDn;
S204、目录服务方响应上述扩展操作请求,快速地从条目DN的索引文件中获取该子树的条目数,并通过扩展操作的应答操作返回给目录客户方;具体实现时,目录服务方解析该扩展操作,得到子树baseDn,从DN索引文件统计得到结果,并通过扩展操作的应答操作返回给目录客户方(存有返回标志和统计结果);
S205、目录客户方从目录服务方返回的应答扩展操作中解析返回的字节数组,并转换为统计条目数。
上述方法中目录服务方和目录客户方所需执行的操作分别如图3、4所示。
本发明的进一步优选,所述步骤S203中发送扩展操作请求时,将统计的目录子树父节点的完整DN作为扩展操作的参数传给目录服务方,完整DN的字符串长度要大于0小于2046,从而保证目录服务方返回该子树的条目数。
本发明的进一步优选,所述步骤S204中,目录服务方需要对目录子树父节点的完整DN的长度进行验证,完整DN的字符串长度要大于0小于2046,否则返回错误,例如LDAP_NO_SUCH_OBJECT。
本发明的进一步优选,所述步骤S204中目录服务方响应目录客户方的目录子树条目数统计的扩展操作请求前,目录服务方需检查目录客户方的认证和权限,如果不是认证客户或是没有对该子树的访问权限,则返回错误,例如LDAP_INSUFFICIENT_ACCESS,;
本发明的进一步优选,所述目录服务方需处理实时统计问题,对统计、添加、删除操作进行同步处理。
本发明的进一步优选,所述目录客户方在接收扩展操作时,需捕获各种返回的错误并处理,需把目录服务方返回字节数组转变为统计数。
本发明基于LDAPV3协议的快速统计目录子树条目数的方法,在具体实现过程中:
首先,根据LDAPV3协议扩展操作的定义方法,对统计条目数的扩展操作进行定义:
例如定义目录子树统计扩展的OID为:"1.3.6.1.4.1.12900.1.4.4.6";
扩展操作的参数串,是需要统计子树的baseDn,以字符串形式,如"st=12,c=cn",baseDn的长度要大于0小于2046,否则返回LDAP_PROTOCOL_ERROR协议错误;
定义统计条目数的扩展操作返回结果的数据格式,例如以"一级子条目数:所有子条目数"字符串的字节数组形式返回,经过字符串处理后,可得到如"10:100"形式的字符串,表示该子树的一级子条目数为10,所有子条目数为100;返回的数据格式不限;
定义返回标志,例如:
LDAP_SUCCESS,代表成功。
LDAP_OPERATIONS_ERROR,代表统计操作失败,由于对目录后端操作失败造成。
LDAP_INSUFFICIENT_ACCESS,如果认证用户没有访问权限,则将返回此标志。
LDAP_PROTOCOL_ERROR,协议错误,当申请不符合协议时返回。
LDAP_NO_SUCH_OBJECT,检索不到要求的baseDn。
之后,目录服务方的程序实现方法为:
在目录中加入上述新的目录子树统计扩展OID的定义;
在目录扩展模块(实现代码)中增加目录子树统计扩展方法;
增加目录子树统计模块,对DN索引文件进行统计;
新增加的扩展操作,要根据LDAPv3的协议要求,发布到目录的rootDSE中,供目录客户方在获取可用的扩展和控制时查询。
从以上步骤可以看出,本发明的关键在于使用扩展操作完成统计,以及对DN索引文件实现快速统计的过程,由于DN索引文件相当于数据文件非常非常小,并且在各级节点上都记录有下级条目的统计数,因此统计操作会相对的非常快,实现了快速统计的目的。
以上对本发明的一个实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明申请范围所作的均等变化与改进等,均应仍归属于本发明的专利涵盖范围之内。
Claims (6)
1.基于LDAPV3协议的快速统计目录子树条目数的方法,其特征在于所述方法包括如下步骤:
1)目录服务方在目录添加或删除条目时,在条目DN的索引文件中记录或更新条目所在子树的一级子条目数和所有子条目数;
2)目录客户方连接到目录服务方,并进行认证;
3)目录客户方得到目录服务方返回的认证成功后,目录客户方向目录服务方发出符合LDAPV3协议的目录子树条目数统计的扩展操作请求;
4)目录服务方响应上述扩展操作请求,从条目DN的索引文件中获取该子树的条目数,并通过扩展操作的应答操作返回给目录客户方;以及
5)目录客户方从目录服务方返回的应答扩展操作中解析出目录子树的条目数。
2.根据权利要求1所述的基于LDAPV3协议的快速统计目录子树条目数的方法,其特征在于:所述步骤3)中发送扩展操作请求时,将统计的目录子树父节点的完整DN作为扩展操作的参数传给目录服务方,完整DN的字符串长度要大于0小于2046,从而保证目录服务方返回该子树的条目数。
3.根据权利要求2所述的基于LDAPV3协议的快速统计目录子树条目数的方法,其特征在于:所述步骤4)中,目录服务方需要对目录子树父节点的完整DN的长度进行验证,完整DN的字符串长度要大于0小于2046,否则返回协议错误。
4.根据权利要求1或3所述的基于LDAPV3协议的快速统计目录子树条目数的方法,其特征在于:所述步骤4)目录服务方响应目录客户方的目录子树条目数统计的扩展操作请求前,需检查目录客户方的认证和权限,如果不是认证客户或是没有对该子树的访问权限,则返回错误。
5.根据权利要求1所述的基于LDAPV3协议的快速统计目录子树条目数的方法,其特征在于:所述目录服务方需处理实时统计问题,对统计、添加、删除操作进行同步处理。
6.根据权利要求1所述的基于LDAPV3协议的快速统计目录子树条目数的方法,其特征在于:所述目录客户方在接收扩展操作时,需捕获各种返回的错误并处理,需把目录服务方返回字节数组转变为统计数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410409584.8A CN104243552B (zh) | 2014-08-19 | 2014-08-19 | 基于ldapv3协议的快速统计目录子树条目数的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410409584.8A CN104243552B (zh) | 2014-08-19 | 2014-08-19 | 基于ldapv3协议的快速统计目录子树条目数的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104243552A CN104243552A (zh) | 2014-12-24 |
CN104243552B true CN104243552B (zh) | 2017-09-15 |
Family
ID=52230881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410409584.8A Active CN104243552B (zh) | 2014-08-19 | 2014-08-19 | 基于ldapv3协议的快速统计目录子树条目数的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104243552B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105574125B (zh) * | 2015-12-12 | 2019-04-30 | 天津南大通用数据技术股份有限公司 | 基于ldapv3扩展操作的目录条目批量增删操作实现方法 |
CN108874930A (zh) * | 2018-05-31 | 2018-11-23 | 郑州云海信息技术有限公司 | 文件属性信息统计方法、装置、系统、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1822590A (zh) * | 2004-10-28 | 2006-08-23 | 微软公司 | 保护轻量级目录访问协议的通信 |
CN101335742A (zh) * | 2007-06-25 | 2008-12-31 | 中兴通讯股份有限公司 | 一种轻量级目录访问协议下访问目录的系统及方法 |
CN101626365A (zh) * | 2008-07-11 | 2010-01-13 | 中兴通讯股份有限公司 | 一种目录服务器及ldap扩展操作的实现系统和方法 |
CN102279853A (zh) * | 2010-06-12 | 2011-12-14 | 陈健华 | 一种基于ldap的快速数据访问方法 |
CN103957273A (zh) * | 2014-05-16 | 2014-07-30 | 广东佳和通信技术有限公司 | 一种在多台ldap服务器间进行通讯录同步的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7840588B2 (en) * | 2004-03-25 | 2010-11-23 | International Business Machines Corporation | Real-time attribute processor and syntax schema for directory access protocol services |
-
2014
- 2014-08-19 CN CN201410409584.8A patent/CN104243552B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1822590A (zh) * | 2004-10-28 | 2006-08-23 | 微软公司 | 保护轻量级目录访问协议的通信 |
CN101335742A (zh) * | 2007-06-25 | 2008-12-31 | 中兴通讯股份有限公司 | 一种轻量级目录访问协议下访问目录的系统及方法 |
CN101626365A (zh) * | 2008-07-11 | 2010-01-13 | 中兴通讯股份有限公司 | 一种目录服务器及ldap扩展操作的实现系统和方法 |
CN102279853A (zh) * | 2010-06-12 | 2011-12-14 | 陈健华 | 一种基于ldap的快速数据访问方法 |
CN103957273A (zh) * | 2014-05-16 | 2014-07-30 | 广东佳和通信技术有限公司 | 一种在多台ldap服务器间进行通讯录同步的方法 |
Non-Patent Citations (1)
Title |
---|
"基于LDAPv3的目录服务系统中推荐的设计与实现";郭军 等;《小型微型计算机系统》;20000831;第21卷(第8期);第802-806页 * |
Also Published As
Publication number | Publication date |
---|---|
CN104243552A (zh) | 2014-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108173850B (zh) | 一种基于区块链智能合约的身份认证系统和身份认证方法 | |
WO2022126968A1 (zh) | 微服务访问方法、装置、设备及存储介质 | |
US9852206B2 (en) | Computer relational database method and system having role based access control | |
CN110708322A (zh) | 一种工业互联网标识解析系统代理服务的实现方法 | |
CN101098248B (zh) | 一种基于配置描述文件实现通用网络管理的方法及系统 | |
CN107656981A (zh) | 一种基于标识技术的数据共享和管理方法及系统 | |
CN105554133A (zh) | Http远程数据访问系统和方法 | |
CN101605031A (zh) | 一种面向电视台应用的跨域单点登陆系统 | |
CN103957282B (zh) | 一种域内终端用户域名解析加速系统及其方法 | |
CN113259504B (zh) | 基于DOA/handle标识解析技术的数据管理系统 | |
CN106685949A (zh) | 一种容器访问方法、装置以及系统 | |
US9100301B2 (en) | Systems, methods, and articles of manufacture to manage alarm configurations of servers | |
US8489631B2 (en) | Distributing a query | |
CN105871919A (zh) | 一种网络应用防火墙系统及其实现方法 | |
CN106326280B (zh) | 数据处理方法、装置及系统 | |
US8392548B1 (en) | Method and apparatus for generating diagnostic information for errors detected in a network management protocol | |
US20190066012A1 (en) | Enterprise customer website | |
CN104243552B (zh) | 基于ldapv3协议的快速统计目录子树条目数的方法 | |
CN104253875B (zh) | 一种dns流量分析方法 | |
CN113055213A (zh) | 告警信息管理方法、告警信息管理系统及服务器 | |
US7899918B1 (en) | Service accounting in a network | |
CN107491360B (zh) | 对数据表中记录进行分级别冗余存储的方法 | |
CN107491361B (zh) | 对数据表中列进行分级别冗余存储的方法 | |
CN116055082B (zh) | 一种基于OpenStack的用户管理方法及管理系统 | |
KR102100806B1 (ko) | 빅데이터 플랫폼에서 게이트웨이를 통한 인터페이스 액세스 및 관리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |