用于在流程中处理调用的Web服务的OAuth认证的方法和系统的制作方法

文档序号:7983856阅读:106来源:国知局
用于在流程中处理调用的Web服务的OAuth认证的方法和系统的制作方法
【专利摘要】本发明涉及Web服务,其中公开了一种用于在流程中处理调用的Web服务的OAuth认证的方法,包括:判断OAuth访问令牌是否过期,以及响应于OAuth访问令牌过期,启动OAuth访问令牌的自动更新。利用本发明的一个或多个实施例,在由访问令牌过期可能导致调用Web服务产生错误之前能够启动访问令牌的自动更新,从而使得由访问令牌过期导致的调用Web服务产生的错误能够得到有效处理。
【专利说明】用于在流程中处理调用的Web服务的OAuth认证的方法和系统
【技术领域】
[0001]本发明涉及Web服务,更具体地,涉及一种用于在流程中处理调用的Web服务的OAuth认证的方法和系统。
【背景技术】
[0002]Web服务作为一种实现面向服务的架构(S0A)的方式,以其开放性、可复用性、松散耦合性、平台独立性等特点,解决了异构应用之间互操作、集成和通信的问题。然而单个的功能简单的Web服务难以满足现代企业实际应用的需求,为了解决互联网应用的协作和集成问题,需将独立的Web服务组合起来以实现强大的业务功能。WS-BPEL (Web ServicesBusiness Process Execution Language, Web服务业务流程执行语言)是当前进行Web服务组合的由OASIS组织推出的首选标准流程语言,在Web服务集成中备受关注,并被广泛应用。BPEL指定了一组Web服务间共享的数据、业务流程涉及的合作伙伴以及这些伙伴在业务流程中扮演的角色、Web服务操作的可能执行顺序及其相互间的依赖关系、Web服务的补偿处理、错误处理及异常处理以及关于多个组织和服务是如何参与等一系列问题。
[0003]当前很多的Web服务都提供应用程序接口以允许第三方应用使用其数据。当第三方应用需要访问用户私有数据的时候,需要进行认证。OAuth认证(开放授权)认证是目前流行的一种认证方式,被很多Web服务采用。OAuth是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密资源而无需向第三方应用提供用户名和密码。OAuth认证允许用户提供一个访问令牌,而不是用户名和密码来访问他们存放在特定服务提供者的数据。每一个访问令牌授权一个特定的网站在特定的时段内访问特定的资源,也就是说,访问令牌的有效期只有有限的时间范围。这样,OAuth认证允许用户授权第三方应用访问他们存储在另外的服务提供者上的特定资源,而不需要分享他们的访问许可或所有的资源。OAuth认证的特点是第三方应用不能直接获取用户的密码,而只是使用一个经过用户授权之后的访问令牌来进行访问。
[0004]由于访问令牌的有效期只有有限的时间范围,如果第三方应用希望访问的时长超过此时间范围则必须对令牌进行更新。对于BPEL流程中调用的Web服务通过OAuth认证保护时如果访问令牌过期,当前的处理方式大都是通过OAuth认证服务提供者提供的页面人工进行登录来更新令牌,因此效率很低,不能满足业务流程对效率的需求。而且,对于运行时环境中的BPEL流程来说,一旦BPEL应用被部署运行之后,如果遇到访问令牌过期,在调用Web服务时就会产生错误,由于无法处理该Web服务之后的所有任务,该流程实例也会终止。也就是说,当前不存在由访问令牌过期导致调用Web服务产生错误时的有效处理机制。

【发明内容】

[0005]本发明说明性实施例提供了一种用于在流程中处理调用的Web服务的OAuth认证的方法和系统。
[0006]根据本发明的一个方面,提供了一种用于在流程中处理调用的Web服务的OAuth认证的方法,包括:判断OAuth访问令牌是否过期,以及响应于OAuth访问令牌过期,启动OAuth访问令牌自动更新。
[0007]根据本发明的一个方面,用于判断OAuth访问令牌是否过期包括:向调用的Web服务发送HTTP请求;以及根据返回的结果判断OAuth访问令牌是否过期。
[0008]根据本发明的一个方面,获取调用的Web服务对应的端点的地址;利用端点的地址构造所述调用的Web服务的描述文件地址;以及向所述调用的Web服务的描述文件地址发送HTTP请求。
[0009]根据本发明的一个方面,通过在所述调用的Web服务对应的端点的地址附加〃?WSdl〃构造所述调用的Web服务的描述文件地址。
[0010]根据本发明的一个方面,其中根据返回的结果判断OAuth访问令牌是否过期包括:检查返回的结果是否满足WSDL模式;如果不满足WSDL模式,确定OAuth访问令牌过期。
[0011]根据本发明的另一个方面,提供了一种用于在流程中处理调用的Web服务的OAuth认证的系统,包括:判断模块,配置为判断OAuth访问令牌是否过期,以及启动模块,配置为响应于OAuth访问令牌过期,启动OAuth访问令牌的自动更新。
[0012]根据本发明的另一个方面,提供了用于在流程中处理调用的Web服务的OAuth认证的计算机程序产品。
[0013]利用本发明的一个或多个实施例,在在由访问令牌过期可能导致调用Web服务产生错误之前能够启动访问令牌的自动更新,从而使得由访问令牌过期导致的调用Web服务产生的错误能够得到有效处理。`【专利附图】

【附图说明】
[0014]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0015]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
[0016]图2示出了根据本发明的一个实施例的用于在流程中处理调用的Web服务的OAuth认证的方法200的流程图;
[0017]图3示出了根据本发明的一个实施例的用于于在流程中处理调用的Web服务的OAuth认证的系统300的框图。
【具体实施方式】
[0018]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0019]所属【技术领域】的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
[0020]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0021]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0022]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0023]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0024]下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
[0025]也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
[0026]也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
[0027]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0028]如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0029]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0030]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0031]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0032]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0033]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0034]现在参看图2,其中显示了根据本发明的一个实施例的用于在流程中处理调用的Web服务的OAuth认证的方法200的流程图。在执行流程的过程中将调用一个或多个Web服务,对于那些基于OAuth授权方式的Web服务,需要处理调用的Web服务的OAuth认证存在的访问令牌可能过期的问题。
[0035]根据本发明的一个实施例的用于在流程中处理调用的Web服务的OAuth认证的方法200从步骤202开始,接下来,方法200进入步骤204,其中,判断OAuth访问令牌是否过期。如果OAuth访问令牌没有过期,即判断结果为否,那么方法200进入步骤208,结束。如果OAuth访问令牌过期,即判断结果为是,方法200进入步骤206,其中启动OAuth访问令牌的自动更新。
[0036]根据本发明的该实施例,通过验证流程调用的Web服务的OAuth访问令牌是否过期并在OAuth访问令牌过期时启动OAuth访问令牌的自动更新,有效的解决了现有技术中存在的问题,即使得由访问令牌过期导致的调用Web服务产生的错误能够得到有效处理。
[0037]根据本发明的一个实施例,判断OAuth访问令牌是否过期包括:向调用的Web服务发送HTTP请求;以及根据返回的结果判断OAuth访问令牌是否过期。根据本发明的一个实施例,向调用的Web服务发送HTTP请求包括:获取调用的Web服务对应的端点的地址;利用端点的地址构造所述调用的Web服务的描述文件地址;以及向所述调用的Web服务的描述文件地址发送HTTP请求,根据本发明的一个实施例,可以是HTTP GET请求。其中,通过在所述调用的Web服务对应的端点的地址附加〃?wsdl〃构造所述调用的Web服务的描述文件地址。根据本发明的一个实施例,据返回的结果判断OAuth访问令牌是否过期包括:检查返回的结果是否满足WSDL模式;如果不满足WSDL模式,确定OAuth访问令牌过期。
[0038]下面结合具体示例对根据本发明的一个或多个实施例的方法进行说明。以下是在一个流程中调用照片服务(PhotoHostingService)的例子,其中该照片服务基于OAuth认证。为了便于说明的目的,下面只给出了部分代码。
[0039]
<bpel:process name:"MyPhotoPrintingProcess"
targetNamespace:"http://samp1e.bpel.0rg/bpel/sample"suppressJoinFailure="yes"
xmlns:tns="http://sample.bpel.0rg/bpel/sample"
<bpel:invoke name="InvokePhotoHostingService"partnerLink="PhotoHostingPL"operation:"RetrievePhotosOperation"portType="ns:PhotoHostingService"inputVariable="PhotoHostingPLReguest"outputVariable="PhotoHostingPLResponse">
</bpel:invoke>
</bpel:process〉
[0040]该照片服务对应的服务描述文件(WSDL)中相关内容为: [0041]
【权利要求】
1.一种用于在流程中处理调用的Web服务的OAuth认证的方法,包括:判断OAuth访问令牌是否过期,以及响应于OAuth访问令牌过期,启动OAuth访问令牌的自动更新。
2.根据权利要求1的方法,其中判断OAuth访问令牌是否过期包括:向调用的Web服务发送HTTP请求;以及根据返回的结果判断OAuth访问令牌是否过期。
3.根据权利要求2的方法,其中向调用的Web服务发送HTTP请求包括:获取调用的Web服务对应的端点的地址;利用端点的地址构造所述调用的Web服务的描述文件地址;以及向所述调用的Web服务的描述文件地址发送HTTP请求。
4.根据权利要求3的方法,其中通过在所述调用的Web服务对应的端点的地址附加〃?ws dl〃构造所述调用的Web服务的描述文件地址。
5.根据权利要求3的方法,其中根据返回的结果判断OAuth访问令牌是否过期包括:检查返回的结果是否满足WSDL模式;如果不满足WSDL模式,确定OAuth访问令牌过期。
6.根据权利要求1的方法,其中OAuth访问令牌的自动更新包括:向调用的Web服务发送OAuth访问令牌更新请求;以及接收更新后的OAuth访问令牌。
7.根据权利要求6的方法,其中向调用的Web服务发送OAuth访问令牌更新请求包括:向调用的Web服务发送HTTP请求;接收返回的结果;以及利用返回的结果构造OAuth访问令牌更新请求。
8.根据权利要求7的方法,其中利用返回的结果构造OAuth访问令牌更新请求包括:提取返回的结果中与OAuth访问令牌更新相关的内容;以及利用提取的内容构造OAuth访问令牌更新请求。
9.一种用于在流程中处理调用的Web服务的OAuth认证的系统,包括:判断模块,配置为判断OAuth访问令牌是否过期,以及启动模块,配置为响应于OAuth访问令牌过期,启动OAuth访问令牌的自动更新。
10.根据权利要求9的系统,其中判断模块进一步包括:请求模块,配置为向调用的Web服务发送HTTP请求;其中,判断模块进一步配置为根据返回的结果判断OAuth访问令牌是否过期。
11.根据权利要求10的系统,其中请求模块进一步包括:获取模块,配置为获取调用的Web服务对应的端点的地址;描述文件地址构造模块,配置为利用端点的地址构造所述调用的Web服务的描述文件地址;其中,请求模块进一步配置为向所述调用的Web服务的描述文件地址发送HTTP请求。
12.根据权利要求11的系统,其中描述文件地址构造模块通过在所述调用的Web服务对应的端点的地址附加〃?wSdl〃构造所述调用的Web服务的描述文件地址。
13.根据权利要求11的系统,其中判断模块利用以下方式根据返回的结果判断OAuth访问令牌是否过期:检查返回的结果是否满足WSDL模式;如果不满足WSDL模式,确定OAuth访问令牌过期。
14.根据权利要求9的系统,其中OAuth访问令牌的自动更新包括:向调用的Web服务发送OAuth访问令牌更新请求;以及接收更新后的OAuth访问令牌。
15.根据权利要求14的系统,其中向调用的Web服务发送OAuth访问令牌更新请求包括:向调用的Web服务发送HTTP请求;接收返回的结果;以及利用返回的结果构造OAuth访问令牌更新请求。
16.根据权利要求15的系统,其中利用返回的结果构造OAuth访问令牌更新请求包括:提取返回的结果中与OAuth访问令牌更新相关的内容;以及利用提取的内容构造OAuth访问令牌更新请`求。
【文档编号】H04L29/08GK103716283SQ201210372196
【公开日】2014年4月9日 申请日期:2012年9月29日 优先权日:2012年9月29日
【发明者】王夕宁, 刘 英, 刘建民, 邵煜 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1