一种xml文档管理方法及系统的制作方法

文档序号:7957118阅读:280来源:国知局
专利名称:一种xml文档管理方法及系统的制作方法
技术领域
本发明涉及可扩展标记语言XML技术,尤其涉及一种XML文档的管理方法及系统。
背景技术
XML(可扩展标记语言)文档管理(XDM)系统是多种通信业务的通用引擎,能够存储和管理各种业务的数据。开放移动联盟OMA已经对XDM系统制定了初步的规范,XDM系统主要包括以下功能实体1.XDM客户端(XDMC)XDM客户端是提供访问XDM服务器的实体。XDM客户端可以是终端或者服务器实体。XCAP资源对应一个XML文档或一个XML文档中的元素或属性。XCAP(XML配置访问协议)资源通过一个XCAP URI来识别。XDM客户端通过XCAP操作来使用XML文档,XDM客户端应该基于应用的使用方法来构造请求操作的资源的URI。可以进行如下操作创建或取代一个文档;删除一个文档;获取一个文档;创建或取代一个元素;删除一个元素;获取一个元素;创建或取代一个属性;删除一个属性;获取一个属性。关于XCAP协议具体可以参见互联网工程组IETF的“The Extensible Markup Language(XML)Configuration Access Protocol”规范。
2.XDM服务器(XDMS)共享XDM服务器提供操作鉴权、XML文档管理和XML文档改变通知等功能。如共享XDM服务器存储用户共享的URI列表文档,URI列表包括被不同业务引擎重用的群组、接受列表、拒绝列表等。
3.聚合代理XDM客户端在用户设备实现访问XDM服务器上的XML文档的接触点,称之为聚合代理。通常业务引擎服务器访问XDM服务器不需要经过聚合代理。聚合代理执行以下的功能1)执行对XDM客户端的鉴权。2)路由XCAP请求到正确的XDM服务器。3)在无线接口进行压缩/解压。
现有技术方案中,XML文档管理操作请求者只能是文档拥有者本身,用户可以对自己所拥有的XML文档执行XDM系统所允许的各种操作如删除、修改等,一个用户无法对其他用户的文档进行操作。如图1中所示,典型的XDM系统主要有以下装置组成A)XDM客户端是访问XDM服务器的实体,可能为终端或服务器。当XDM客户端为终端时通过聚合代理与XDM服务器交互;否则XDM客户端直接与XDM服务器交互。XDM客户端使用XCAP协议管理存储与某XDM服务器上的相应XML文档。
B)聚合代理当XDM客户端为用户设备终端时,XDM客户端的XCAP请求由聚合代理转发给恰当的XDM服务器,聚合代理的主要功能是路由,鉴权,压缩等。
C)XDM服务器XDM服务器为多个XDM客户端存储和管理XML文档,为订阅了某些文档改变的客户端在相应文档发生改变时提供通知消息。
该系统所存在的缺点是,在操作存储在XDM服务器上的文档时只能由代表相应文档的拥有者的客户端操作,不能委托其他实体如其他用户或应用服务器为其操作XML文档,给用户带来不便。有很多情况下需要一种委托代理机制,以允许某个客户端将其对XML文档的存储管理等操作委托代理给其他用户的客户端进行,即让其他用户的XDM客户端为其管理XML文档。现有技术中也没有提供对XML文档进行访问控制的机制。

发明内容
本发明的目的之一是提供一种使XDM客户端能够委托其他实体进行XDM操作的方法,使用户可通过委托方式管理操作自己存储在XDMS中的XML文档。
为了达成上述目的,本发明所采取的技术方案是,提供一种XML文档管理方法,包括步骤A.XML文档管理客户端XDMC向XML文档管理服务器XDMS发送XML文档管理操作请求;B.XDMS判断所述请求是否为委托方式;C.当所述请求为委托方式时,XDMS根据XML文档相应的访问许可信息确定是否执行XDMC所请求的操作。
进一步,步骤B中,XDMS根据检查发送操作请求的XDMC的身份标识是否匹配目标文档拥有者的身份标识判断是否为委托方式,如果不匹配,则XDMS判断所述请求为委托方式。
或者在步骤A中,XDMC在请求消息中设置委托标志;步骤B中,XDMS通过检查所述委托标志判断所述请求是否为委托方式。
当在3GPP IMS网络上实现,并且提供GAA机制时,所述XDMC的身份标识由XDMS从请求消息中的X-3GPP-Asserted-Identity或X-3GPP-Intended-Identity中获取;否则从请求消息中的X-XCAP-Asserted-Identity中获取。
所述步骤C中所述访问许可信息包括身份标识,动作字段和操作类型字段;所述步骤C中XDMS从访问许可信息中获取发送操作请求的XDMC的身份标识所对应的动作字段和操作类型字段,并据此确定是否执行XDMC所请求的操作。
所述步骤C中所述访问许可信息中的每个身份标识对应的动作字段至少包括以下其中之一允许,拒绝,需要确认;每个身份标识对应的操作类型字段至少包括以下其中之一读取操作,创建操作,修改操作,删除操作,搜索操作,挂起操作,恢复操作,订阅操作。
所述访问许可信息中还包含指定许可操作XML文档的特定部分的信息,步骤C中XDMS还从访问许可信息中获取该信息,并据此确定是否执行XDMC所请求的对XML文档的特定部分的操作。
所述XML文档的特定部分用XPATH表达式表示。
进一步,步骤A之前还包括步骤XDMC通过XCAP协议在所述XDMS上设置XML文档对应的访问许可信息。
一种XML文档管理方法,包括以下步骤XML文档管理客户端XDMC向XML文档管理服务器XDMS发送XML文档管理操作请求;XDMS检查所述XDMC的身份标识是否与所请求操作的文档拥有者的身份标识相匹配;如果是,则XDMS执行XDMC所请求的操作;否则XDMS根据XML文档相应的访问许可信息进行鉴权,确定是否执行XDMC所请求的操作。
所述XDMC的身份标识是XDMS从XDMC发送的请求消息中获取的。
当在3GPP IMS网络上实现,并且提供GAA机制时,所述XDMC的身份标识由XDMS从请求消息中的X-3GPP-Asserted-Identity或X-3GPP-Intended-Identity中获取;否则从请求消息中的X-XCAP-Asserted-Identity中获取。
本发明还同时提供了一种XML文档管理系统,包括XDM客户端XDMC,XDM服务器XDMS和聚合代理,所述的系统还包括XML文档的许可访问信息,用于XDMS据此确定指定实体对XML文档是否有执行XDM操作的权限。
所述XML文档的许可访问信息是当XDMS检查到发送XML文档管理操作请求的XDMC的身份标识非所请求操作文档的拥有者时,XDMS据此进行鉴权,确定是否执行XDMC所请求的操作。
所述XML文档的许可访问信息所许可的操作类型包括以下至少其中之一读取操作,创建操作,修改操作,删除操作,搜索操作,挂起操作,恢复操作,订阅操作。
一种XML文档管理方法,包括以下步骤XML文档管理客户端XDMC通过XCAP协议向XML文档管理服务器XDMS发送对XML文档或其特定部分的管理操作请求;XDMS从请求消息中获取XDMC的身份标识信息,并根据XML文档相应的访问许可信息确定是否执行该身份标识对应的XDMC所请求的操作。
所述访问许可信息包括身份标识,动作字段和操作类型字段;
XDMS从访问许可信息中获取发送操作请求的XDMC的身份标识所对应的动作字段和操作类型字段,并据此确定是否执行该身份标识对应的XDMC所请求的操作。
当在3GPP IMS网络上实现,并且提供GAA机制时,所述XDMC的身份标识由XDMS从请求消息中的X-3GPP-Asserted-Identity或X-3GPP-Intended-Identity中获取;否则从请求消息中的X-XCAP-Asserted-Identity中获取。
本发明的技术效果有以下几个方面1.本发明通过对不同于XML文档拥有者的XDMC客户端进行委托授权,实现了XML文档的委托管理操作,使XML文档的管理操作更加灵活、方便;同时使用XML文档许可访问信息对委托访问进行控制,保证了用户XML文档访问的安全性;2.由于本发明使XML文档能够进行委托管理,所以能够有效地实现XML文档的共享;3.本发明使满足XML文档访问条件的XDMC客户端能够对XML文档的特定部分进行规定的操作,从而实现了对XML文档的精确访问控制。


图1是现有技术的XML文档管理系统示意图;图2是本发明的XML文档委托管理操作的流程图;图3是本发明的XML文档管理方法的委托方式检查的流程图;图4是本发明的第三实施例的XML文档管理方法的消息流程图。
图5是本发明的第四实施例的XML文档管理方法的消息流程图。
具体实施例方式
本发明的一个实施例的XML文档管理系统包括XML文档管理客户端(XDMC)、聚合代理和XML文档管理服务器(XDMS)。
XDMC发送操作XML文档的XCAP请求给聚合代理,聚合代理将请求转发给相应的XDMS,XDMS验证XML文档操作请求是否为委托方式,如果是文档拥有者发送的请求或委托方式鉴权通过时则执行XML文档管理客户端所请求的XML文档管理操作,然后由XDMS向聚合代理发送确认消息,聚合代理将确认消息返回给XDMC。
上述过程中,XDMS中检查XML文档管理操作请求是否为委托方式时,首先获取请求消息发送者的标识。当该系统使用3GPP IMS网络实现时,XDMS从消息头部的X-3GPP-Asserted-Identity(或X-3GPP-Intended-Identity)字段中获取请求消息发送者的标识;否则所述请求消息经过聚合代理时,聚合代理将请求者标示插入消息头部的X-XCAP-Asserted-Identity字段中,XDMS从消息头部的X-XCAP-Asserted-Identity字段中获取请求消息发送者标识。
XDMS中还可以包括委托检查模块和委托鉴权模块,其中委托检查模块用于检查发送XML文档管理操作请求的XDMC的身份标识是否为所请求操作文档的拥有者,具体得从XDMC发送的请求消息中获取请求者的身份标识,同时从XML文档中获取文档拥有者的身份标识,并对其进行对比,如果匹配则允许操作,否则判断为委托方式,转由委托鉴权模块处理。委托鉴权模块,用于根据目标文档的访问许可信息判断操作请求是否被授权,如果鉴权通过则XDMS执行所请求的操作,否则拒绝该请求。
XML文档拥有者的XDMC客户端设置XML文档的访问许可信息,并将访问许可信息发送到XDMS,访问许可信息用于授权非文档拥有者对应的XDMC执行XML文档或其特定部分的操作。文档的拥有者通常为文档的创建者。文档的拥有者的身份标识通常可以存储在相应的XML文档中。
访问许可信息包括访问对应文档的若干条许可规则信息,每条规则说明谁可以对相应文档中哪种或哪些元素进行哪些操作,每条规则包括请求者身份标识条件字段,用于标识规则所对应的XML管理操作请求者身份标识应满足的条件;操作对象字段,用于标识所述XML管理操作对应的XML文档或其中的特定元素或属性;操作类型字段,用于标识所述XML管理操作的类型;动作字段,用于标识规则匹配后服务器所采取的动作。
XDM访问许可信息可以XML方式描述,包含一个根元素<ruleset>,根元素<ruleset>包含若干表示一个许可规则的<rule>子元素,每个<rule>元素包含三个元素<condition>,<action>,<transrformation>。其中<condition>元素确定本规则的生效条件,<action>元素确定本规则生效时采取的动作,例如允许,拒绝,需要确认等,<transformation>可以指定请求访问的XML文档的特定内容部分。
<condition>元素可以包括A)Identity用户身份标识,例如sipzhangsan@huawei.comB)Domain域,例如@example.comC)Validity有效期,例如2005-8-1 8:00~2005-8-9 18:00D)Sphere位置,例如home,work<action>主要包括<action>元素至少包含但不限于下述中的一种
<get>元素,定义对GET操作的动作;<put>元素,定义对PUT操作的动作;<delete>元素,定义对DELETE操作的动作;<post>元素,定义对POST操作的动作;<suspend>元素,定义对挂起操作的动作;<resume>元素,定义对恢复操作的动作;<subscribe>元素,定义对订阅文档改变的操作的动作。
这些动作的值可以为“allow”,“deny”,“confirm”,分别表示允许,拒绝和需要确认。
<transformation>元素包含若干<xpath>子元素,<xpath>元素的值为一个XPATH表达式,这些<xpath>元素间是逻辑或(OR)的关系,指定访问者可以访问的XML文档的部分。
另外访问许可信息文档还可以是另一种结构文档包含<ruleset>根元素,其中包含若干<rule>元素。
<rule>元素包含<condition>、<action>、<transformation>三个子元素。
在此基础上,本实施例在<condition>元素中增加子元素<method>,<method>元素的值至少包括但不限于GET、PUT、DELETE,POST,SUSPEND,RESUME,SUBSCRIBE之一;在<transformation>元素包含子元素<xpath>,表示本规则所控制的XML的哪部分,其值为一个XPATH表达式,<transformation>元素可以有若干个<xpath>子元素,这些<xpath>元素所描述的XML文档的部分的并集表达了规则控制XML文档的哪些部分。
图2是本发明的另一个实施例的XML文档管理方法的XML文档委托管理操作的流程图。
如图2所示,XDM S收到XDM操作请求后,进行委托方式判断,检查消息发送者身份标识是否与所操作文档的拥有者的身份标识匹配,若匹配则为一般方式,否则为委托方式。如果为一般方式,则按照现有技术的流程处理;如果为委托方式,则获取请求的文档的访问许可信息,根据访问许可信息执行相应的操作下面举例说明XDM委托授权文档中描述各种规则的情况假设委托者userA的身份标识为sipuserA@example.com,被委托者B的标识为sipuserB@example.com。假设有委托者userA在XDMS中存储有如下的XML文档http://xcap.example.com/services/resource-lists/users/sipuserA@example.com/friends.xml<?xml version=″1.0″encoding=″UTF-8″?>
<resource-lists xmlns=″utn:ietf:params:xml:ns:resource-lists″>
<list name=″My-Close-friends″>
<entry uri=″sipAndy@example.com″>
<display-name>Andy</display-name>
</entry>
<entry uri=″sipSimon@example.com″>
<display-name>Simon</display-name>
</entry>
</list>
<list name=″My_Middle_School_Classmates″>
<entry uri=″sipfriend1@example.com″>
<display-name>Friend1</display-name>
</entry>
<entry uri=″sipfriend2@example.com″>
<display-name>Friend1</display-name>
</entry>
<entry uri=″sipfriend3@example.com″>
<display-name>Friend1</display-name>
</entry>
</list>
</resource-lists>
上面的XML文档中描述了委托者A的两个列表list,一个名为“My-Close-Friends”,一个名为“My-Middle-School-Classmates”。假设userA允许被委托者userB读取或修改列表“My-Middle-School-Classmates”中的内容。则1)<condition>元素中的子元素<identity>为<identity>
<one id=″userB@example.com″scheme=″sip″/>
</identity>
2)<transformation>元素中的包含如下子元素<xpath>
/resource-lists/list[@name=″My_Middle_School_Classmates″]</xpath>
3)<action>元素为<operation>
<get>allow</get>
<put>deny</put>
<delete>deny</delete>
</operation>
相应的访问许可信息中的规则如下在<condition>元素中包含用户B的标识,说明规则在消息发送者为B时适用;在<action>元素中包含四个子元素,第一个说明允许读取(GET)操作,第二个说明禁止写入(PUT)操作,第三个说明禁止删除(DELETE)操作,第四个说明禁止POST操作;在<transformation>元素中包含一个<xpath>元素,用XPATH表达式指定本规则适用于操作对应XML文档的哪部分,在这里是适用于对对应XML文档中名为“My_Middle_School_Classmates”的列表的操作。
<ruleset xmlns=″urn:ietf:params:xml:ns:common-policy″>
<rule id=″f3g44r3″>
<condition>
<identity>
<one id=″userB@example.com″scheme=″sip″/>
</identity>
</condition>
<action>
<get>allow</get>
<put>deny</put>
<delete>deny</delete>
<post>deny</post>
</action>
<transformation>
<xpath>/resource-lists/list[@name=″My_Middle_School_Classmates″]</xpath>
</transformation>
</rule>
</ruleset>
在委托方式判断中,还可以是通过在XCAP消息中增加一个标志字段,表明是否为委托方式。标志字段放在消息头中,当接收到消息时XDMS获取此标志字段,据此判断是否为委托方式。
图3是委托方式检查的流程图。如图3所示,其过程包括获取消息发布者的用户身份标识;获取所请求操作文档拥有者标识;如果上述两种标识匹配,则为一般方式,否则为委托方式。
另外,在根据访问许可信息进行执行的相应操作中,还可以包含这样的操作方式XML文档管理服务器将XML文档管理客户端的身份标识相关的信息发送到XML文档拥有者客户端请求确认,XML文档拥有者客户端确认后将确认信息返回XML文档管理服务器,若确认结果为授权,则XML文档管理服务器执行所请求的操作,否则拒绝执行所请求的操作。
上述方案中,若没有说明,则是以委托方或被委托方的XDMC位于用户设备如手机或计算机中为例的。另外,无论委托方还是被委托方,其XDMC位于应用服务器中时可以不通过聚合代理而直接向相应XDMS发送请求;若其XDMC位于用户终端中时则可以通过聚合代理向相应XDMS转发请求。
图4是本发明的第三实施例的XML文档管理方法的消息流程图。
用户A委托校友录服务器S为其维护好友信息。当用户A的一个同学B加入A所在班级的校友录中时,服务器为用户A维护存储于某XDMS中的好友列表,将用户B加入好友列表中。
(1)用户A的XDMC客户端向聚合代理发送XCAP消息,在其存储好友列表的XDMS中对校友录服务器S设置访问许可信息,允许校友录服务器向其好友列表“My Classmates”中增加好友。
(2)聚合代理将此请求转发给相应的XDMS服务器。
(3)所述XDMS服务器设置用户A的访问许可信息,向聚合代理返回操作成功响应消息;(4)聚合代理将所述响应消息发送给用户A的XDMC客户端(5)用户B加入A所在班级的校友录后,为将用户B加入用户A的好友列表,校友录服务器S向此XDMS发送XDM操作请求。
(6)此XDMS执行前述委托方式判断流程,从消息中获得消息发布者即校友录服务器S的标识以及操作对象拥有者A的标识,并进行比较,根据比较结果确定为委托方式。
(7)此XDMS根据从消息中获得的消息发布者标识,操作对象和操作类型,对照A存储在此XDMS中的访问许可信息中的许可规则信息确定校友录服务器S有权代理用户A执行此XDM操作,然后向用户A的好友列表中增加用户B为好友。
(8)XDMS向校友录服务器发送操作成功响应消息。
步骤(1)中,用户A在相应XDMS上设置访问许可信息时向相应XDMS发送下面的消息PUThttp://xcap.example.com/services/resource-lists/users/sipuserA@example.com/friends.xml/ruleset/rule HTTP/1.1...
Content-Typeapplication/xcap-el+xmlContent-Length(...)<rule id=″ck81″>
<conditions>
<identity>
<id>sipalumin@exampleservice.com</id>
</identity>
</conditions>
<actions>
<get>allow</get>
<put>allow></put>
<delete>deny</delete>
</actions>
<transformations>
<xpath>
/resource-lists/list[@name=”My_Middle_School_Classmates”]</xpath>
</transformations>
</rule>
其中<rule id=ck81>元素说明定义的一条许可规则,而其中的三个子元素<conditions>说明规则适用的条件,即当消息请求者是<id>元素中指明的校友录服务器时适用本规则。<action>元素说明规则适用时,XDM服务器相应的动作,其中,第一个子元素说明允许进行GET操作,第二个子元素说明允许允许进行PUT操作,第三个子元素说明不允许进行DELETE操作;需要说明的一点是,这里没有指定是否允许POST操作,实际中,XDM服务器可以有默认的动作,在此常用的默认动作为拒绝,即对于没有定义的操作,服务器拒绝执行。<transformations>元素说明本规则所述操作的操作对象,在此为对应的XML文档中的名为”My_Middle_School_Classmates”的列表。
假定校友录服务器S的sip地址为sipalumni@exampleservice.com,用户A的访问许可信息对应的XCAP URI为http://xcap.example.com/services/resource-lists/users/sipuserA@example.com/friends.xml/ruleset。
其中sipalumni@exampleservice.com为授权对象的身份标识,表示此访问许可信息定义对校友录服务器的访问控制;<get>allow</get>表示允许校友录服务器读取,<put>allow</put>表示允许校友录服务器执行PUT操作,<delete>deny</delete>表示不允许校友录服务器执行DELETE操作;<xpath>/resource-lists/list[@name=”My_Middle_School_Classmates”]</xpath>表示允许校友录服务器操作My_Middel_School_Classmates列表。相应XDMS收到此消息后,创建XDM访问许可条件信息。
其中步骤5)中校友录服务器向A的好友列表中增加用户B时发送的消息为PUThttp://xcap.example.com/services/shared-lists/users/sipuserA@example.com/friends.xml/~~/resource-lists/list%5b@name=%22My_friends%22%5d/entryHTTP/1.1...
Content-Typeapplication/xcap-el+xmlContent-Length(...)<entry uri=″sipfriend2@example.com″>
<display-name>Friend2</display-name>
</entry>
XDMS从此消息中获取消息发布者的身份标识“sipalumni@exampleservice.com”,以及请求操作的文档拥有者的身份标识“sipuserA@example.com”,比较两个身份标识结果不同,判断出此XDM操作请求为委托方式。然后参照步骤1)中设置的XDM访问许可信息,确定校友录服务器S有执行此操作的授权,然后XDMS执行此XDM操作。另外如果校友录服务器S位于XDMS运营商同一局域网或授信网络中,则两者之间的通信也可以不经过聚合代理。
另外XDMS也可以在接收到请求消息时不判断XDMC的身份标识是否与文档拥有者匹配,而是直接根据XML文档访问许可信息确定是否可以执行操作,包括步骤XDMS判断请求访问XML文档的XML文档访问客户端是否满足XML文档访问许可条件,若是则执行所请求的对XML文档或其特定部分的管理操作,否则拒绝请求的操作。访问许可条件信息中默认的对文档拥有者赋予全部的操作权限。
另外还可以采用即时确认的方式,将请求对XML文档进行访问操作的XML文档访问客户端的相关信息和所请求的操作信息同时发送到XML文档拥有者客户端进行确认,并接收XML文档拥有者客户端返回的确认信息。若确认结果为允许,XDMS执行所请求的操作,否则拒绝执行。
XML文档访问许可条件可以包括但不限于下述中之一XML文档访问客户端的身份标识条件;规定的有效期条件;请求者的位置信息条件等。比如第一实施例中列出的Identity,Domain,Validity,Sphere等。还可以包括指定的XML文档的特定部分,XML文档的特定部分可以XPATH标识。满足XML文档访问条件的XML文档访问客户端可进行所请求的XML文档或其特定部分的操作。可进行的访问操作可以为读取操作HTTPGET,写入操作HTTP PUT,删除操作HTTP DELETE,检索操作HTTPPOST等。XDMS在执行操作成功后将执行结果信息发送给XML文档访问客户端XDMC。
本发明的第四个实施例用户A通过XDMC客户端A设置XDMS上XML文档friends.xml中的访问许可信息,授权用户B对XML文档friends.xml的访问操作。用户B通过XDMC客户端B为用户A在XML文档friends.xml中设置好友列表。
下面说明本发明的第四个实施例的消息流程如图5所示(1).用户A登录XDMC客户端A,设置用户A所拥有的文档friends.xml的访问许可信息,将访问许可信息通过HTTP PUT消息发送送到聚合代理;(2).聚合代理将所述请求转发给XDMS;(3).XDMS设置XML文档friends.xml的许可信息,向聚合代理返回表明操作成功的响应消息;
(4).聚合代理将所述响应消息发送给XMDC客户端A;(5).用户B登录XDMC客户端B,通过聚合代理向XDMS发送在用户A作为拥有者的XML文档中设置好友列表的请求消息;(6).XDMS接收上述请求消息,获取消息请求者标识,并获取请求的目标XML文档的拥有者标识,判断所述两个标识不匹配,为委托操作方式;根据目标XML文档的访问许可信息进行授权检查;(7).检查通过后,XDMS执行所请求的操作;(8).XDMS将执行结果信息通过聚合代理发送给XDMC客户端B。
上述步骤(1)中,所述请求消息为PUT/services/resource-lists/users/sipuserA@example.com/friends.xml/rulesetHTTP/1.1...Content-Typeapplication/xcap-el+xmlContent-Length(...)<ruleset xmlns=″urn:ietf:params:xml:ns:common-policy″><rule id=″ck61″>
<conditions>
<identity>
<id>sipuseB@example.com</id>
</identity>
</conditions>
<actions>
<get>allow</get>
<put>allow></put>
<subscribe>allow</subscribe>
</actions></rule></ruleset>
上述消息中,元素<condition>的子元素<identity>元素说明授权对象为用户B;元素<actions>元素的子元素<get>allow</get>说明允许用户B对XML文档friends.xml进行HTTP GET操作,<put>anow</put>说明允许用户B对XML文档friends.xml进行HTTP PUT操作,<subscribe>allow<subscribe>说明允许用户B对XML文档friends.xml进行订阅其改变的操作,没有在<action>元素内规定的其他操作默认是不允许的。
上述步骤(5)中,XDMC客户端B所送的消息具体为PUT/services/resource-lists/users/sipuserA@example.com/friends.xml/~~/resource-lists/list%5b@name=%22My_Friends%22%5d/HTTP/1.1Content-Typeapplication/xcap-el+xmlHostxcap.example.com<list name=″My_Friends″>
<entry uri=″sipjohn@example.com″>
<display-name>John Smith</display-name>
</entry>
<entry uri=″sipnancy@example.com″>
<display-name>Nancy Cliton</display-name>
</entry>
<entry uri=″siptom@example.com″>
<display-name>Tom Cruise</display-name>
</entry></list>
即请求增加三个好友信息,上述步骤(6)中,XDMS从请求消息中提取消息请求者标识sipuserB@example.com,并获取请求的目标文档的拥有者标识sipuserA@example.com,两个标识不匹配,因此根据上述步骤(1)中所设置的访问许可信息对请求者用户B进行授权检查,XDMS根据上述检查许可信息中的访问许可规则,确定请求者用户B拥有对请求目标文档friends.xml的读取,创建和修改等权限,因此XDMS允许执行所述操作请求。
上述步骤(7)中,XDMS根据步骤(6)中的结果,执行所请求的操作,在用户A作为拥有者的friends.xml文档中添加消息中指定的好友列表。
上述实施例只是用于说明本发明的具体的实施方式,并非用于本发明的保护范围的限制。本领域技术人员可以根据本发明的基本思想或上述内容,而作出各种变型或改进,只要其落入本发明的权利要求书所确定的保护范围或其等同范围内,都应该被本发明所涵盖。
权利要求
1.一种XML文档管理方法,包括以下步骤A.XML文档管理客户端XDMC通过XCAP协议向XML文档管理服务器XDMS发送XML文档管理操作请求;B.XDMS判断所述请求是否为委托方式;C.当所述请求为委托方式时,XDMS根据XML文档相应的访问许可信息确定是否执行XDMC所请求的操作。
2.如权利要求1所述的方法,其特征在于步骤B中,XDMS根据检查发送操作请求的XDMC的身份标识是否匹配目标文档拥有者的身份标识判断是否为委托方式,如果不匹配,则XDMS判断所述请求为委托方式。
3.如权利要求1所述的方法,其特征在于步骤A中,XDMC在请求消息中设置委托标志;步骤B中,XDMS通过检查所述委托标志判断所述请求是否为委托方式。
4.如权利要求2所述的方法,其特征在于当在3GPP IMS网络上实现,并且提供GAA机制时,所述XDMC的身份标识由XDMS从请求消息中的X-3GPP-Asserted-Identity或X-3GPP-Intended-Identity中获取;否则从请求消息中的X-XCAP-Asserted-Identity中获取。
5.如权利要求2所述的方法,其特征在于,所述步骤C中所述访问许可信息包括身份标识,动作字段和操作类型字段;所述步骤C中XDMS从访问许可信息中获取发送操作请求的XDMC的身份标识所对应的动作字段和操作类型字段,并据此确定是否执行XDMC所请求的操作。
6.如权利要求5所述的方法,其特征在于,所述步骤C中所述访问许可信息中的每个身份标识对应的动作字段至少包括以下其中之一允许,拒绝,需要确认;每个身份标识对应的操作类型字段至少包括以下其中之一读取操作,创建操作,修改操作,删除操作,搜索操作,挂起操作,恢复操作,订阅操作。
7.如权利要求5所述的方法,其特征在于,所述访问许可信息中还包含指定许可操作XML文档的特定部分的信息,步骤C中XDMS还从访问许可信息中获取该信息,并据此确定是否执行XDMC所请求的对XML文档的特定部分的操作。
8.如权利要求7所述的方法,其特征在于,所述XML文档的特定部分用XPATH表达式表示。
9.如权利要求1到8任一项所述的方法,步骤A之前还包括步骤XDMC通过XCAP协议在所述XDMS上设置XML文档对应的访问许可信息。
10.一种XML文档管理方法,包括以下步骤XML文档管理客户端XDMC通过XCAP协议向XML文档管理服务器XDMS发送XML文档管理操作请求;XDMS检查所述XDMC的身份标识是否与所请求操作的文档拥有者的身份标识相匹配;如果是,则XDMS执行XDMC所请求的操作;否则XDMS根据XML文档相应的访问许可信息进行鉴权确定是否执行XDMC所请求的操作。
11.如权利要求10所述的方法,其特征在于所述XDMC的身份标识是XDMS从XDMC发送的请求消息中获取的。
12.如权利要求10所述的方法,其特征在于当在3GPP IMS网络上实现,并且提供GAA机制时,所述XDMC的身份标识由XDMS从请求消息中的X-3GPP-Asserted-Identity或X-3GPP-Intended-Identity中获取;否则从请求消息中的X-XCAP-Asserted-Identity中获取。
13.一种XML文档管理系统,包括XDM客户端XDMC,XDM服务器XDMS和聚合代理,其特征在于,所述的系统还包括XML文档的许可访问信息,用于XDMS据此确定指定实体对XML文档是否有执行XDM操作的权限。
14.如权利要求13所述的系统,其特征在于所述XML文档的许可访问信息是当XDMS检查到发送XML文档管理操作请求的XDMC的身份标识非所请求操作文档的拥有者时,XDMS据此进行鉴权,确定是否执行XDMC所请求的操作。
15.如权利要求13所述的系统,其特征在于所述XML文档的许可访问信息所许可的操作类型包括以下至少其中之一读取操作,创建操作,修改操作,删除操作,搜索操作,挂起操作,恢复操作,订阅操作。
16.如权利要求13所述的系统,其特征在于,所述XDMS还包括委托检查模块,用于检查发送XML文档管理操作请求的XDMC的身份标识是否为所请求操作文档的拥有者;以及委托鉴权模块,用于根据目标文档的访问许可信息判断操作请求是否被授权。
17.一种XML文档管理方法,包括以下步骤XML文档管理客户端XDMC通过XCAP协议向XML文档管理服务器XDMS发送对XML文档或其特定部分的管理操作请求;XDMS从请求消息中获取XDMC的身份标识信息,并根据XML文档相应的访问许可信息确定是否执行该身份标识对应的XDMC所请求的操作。
18.如权利要求17所述的方法,其特征在于,所述访问许可信息包括身份标识,动作字段和操作类型字段;XDMS从访问许可信息中获取发送操作请求的XDMC的身份标识所对应的动作字段和操作类型字段,并据此确定是否执行该身份标识对应的XDMC所请求的操作。
19.如权利要求17或18所述的方法,其特征在于当在3GPP IMS网络上实现,并且提供GAA机制时,所述XDMC的身份标识由XDMS从请求消息中的X-3GPP-Asserted-Identity或X-3GPP-Intended-Identity中获取;否则从请求消息中的X-XCAP-Asserted-Identity中获取。
全文摘要
本发明提供了一种XML文档管理方法,包括步骤XML文档管理客户端XDMC通过XCAP协议向XML文档管理服务器XDMS发送XML文档管理操作请求;XDMS检查所述XDMC的身份标识是否为所请求操作的文档拥有者;如果是,则XDMS执行XDMC所请求的操作;否则XDMS根据XML文档相应的访问许可信息进行鉴权,确定是否执行XDMC所请求的操作。本发明有效实现了XML文档的委托管理操作以及许可控制,可广泛应用于XML文档的管理中。
文档编号H04L9/32GK101079789SQ20061006088
公开日2007年11月28日 申请日期2006年5月27日 优先权日2006年5月27日
发明者孙谦, 鲍洪庆, 招扬, 田林一, 宋雪飞, 彭程晖 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1