本发明涉及hydra服务领域,具体涉及一种hydra服务调用方法、系统、终端及存储介质。
背景技术:
1、ory hydra是经过强化,经过openid认证的oauth 2.0服务器和openid connect提供商,针对低延迟,高吞吐量和低资源消耗进行了优化。ory hydra 不是身份提供者(用户注册,用户登录,密码重置流程),而是通过登录和同意应用程序连接到现有的身份提供者。
2、目前,hydra主要用来处理系统之间的单点登录与授权问题。然而,hydra所提供的原生接口往往无法适配应用程序的要求,应用程序在调用hydra时还需编写大量的逻辑代码和配置大量的参数并注入许多hydra需要的类,而当前针对hydra的接口再封装的方案较为稀缺,能够帮助应用开发者快速开发的基于hydra的框架少之又少,导致应用程序对hydra的调用繁琐复杂,影响工作效率。
技术实现思路
1、为解决上述问题,本发明提供一种hydra服务调用方法、系统、终端及存储介质,通过构建包含hydra配置类和接口封装包,在hydra服务和应用程序之间建立桥梁,使应用程序调用封装包即可使用hydra服务,提高调用hydra服务的便利性,提高工作效率。
2、第一方面,本发明的技术方案提供一种hydra服务调用方法,包括以下步骤:
3、将hydra服务的配置类和服务接口进行封装,构建封装包,封装包将配置文件和封装后的服务接口暴露给应用程序;
4、应用程序调用封装包,使用封装包提供的配置文件进行参数配置;
5、封装包读取所配置参数映射到hydra的原生服务中;
6、应用程序基于业务需求调用相关封装后的服务接口触发hydra服务进行业务处理。
7、在一个可选的实施方式中,将hydra服务的配置类进行封装,具体包括:
8、将hydra服务原本需要的配置类集成到代码中;
9、将配置类中的定制化参数以配置文件的形式暴露给应用程序。
10、在一个可选的实施方式中,封装的服务接口包括核心业务包、实体类和令牌句柄。
11、在一个可选的实施方式中,核心业务包包括第一业务包和第二业务包,第一业务包提供重定向实现、退出重定向、登出、callback获取token的方法,第二业务包提供操作失败和成功的后续处理逻辑和返回内容。
12、在一个可选的实施方式中,将hydra服务的服务接口进行封装时,还编写相关拦截器扩展鉴权功能进行封装。
13、在一个可选的实施方式中,封装的拦截器包括第一拦截器、第二拦截器、第三拦截器和第四拦截器;
14、第一拦截器包含日志记录器,提供判断是否需要排除某个 uri的方法、判断请求是否需要绕过 oauth 认证的方法、设置未经授权的响应状态码的方法;
15、第二拦截器用于对用户的请求进行认证和授权,且提供授权失败时的执行逻辑;其中对用户请求的认证包括尝试校验用户的令牌是否已经过期,如果过期且用户有refresh token,则使用 refresh token 刷新令牌,如果刷新成功,则更新用户信息,并在session 中保存该信息,如果刷新失败,则表示用户请求未通过认证,请求将被拒绝;同时,将用户请求认证的结果保存到 request 的属性中;
16、第三拦截器用于提供判断token有效性和从header中获取的参数的方法;
17、第四拦截器用于检查请求是否已通过oauth验证并具有足够的权限来访问请求处理程序。
18、在一个可选的实施方式中,封装包为starter包。
19、第二方面,本发明的技术方案提供一种hydra服务调用系统,包括,
20、封装包构建模块:将hydra服务的配置类和服务接口进行封装,构建封装包,封装包将配置文件和封装后的服务接口暴露给应用程序;
21、封装包调用模块:应用程序调用封装包,使用封装包提供的配置文件进行参数配置;封装包读取所配置参数映射到hydra的原生服务中;应用程序基于业务需求调用相关封装后的服务接口触发hydra服务进行业务处理。
22、第三方面,本发明的技术方案提供一种终端,包括:
23、存储器,用于存储hydra服务调用程序;
24、处理器,用于执行所述hydra服务调用程序时实现如上述任一项所述hydra服务调用方法的步骤。
25、第四方面,本发明的技术方案提供一种计算机可读存储介质,所述可读存储介质上存储有hydra服务调用程序,所述hydra服务调用程序被处理器执行时实现如上述任一项所述hydra服务调用方法的步骤。
26、本发明提供的一种hydra服务调用方法、装置、终端及存储介质,相对于现有技术,具有以下有益效果:将hydra服务的配置类和服务接口进行封装以构建封装包,应用程序调用封装包只需填写少量的配置参数即可,无需编写大量代码即可获得更多有用的业务信息和更少的配置体验。本发明通过构建包含hydra配置类和接口封装包,在hydra服务和应用程序之间建立桥梁,使应用程序调用封装包即可使用hydra服务,提高调用hydra服务的便利性,提高工作效率。
1.一种hydra服务调用方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的hydra服务调用方法,其特征在于,将hydra服务的配置类进行封装,具体包括:
3.根据权利要求2所述的hydra服务调用方法,其特征在于,封装的服务接口包括核心业务包、实体类和令牌句柄。
4.根据权利要求3所述的hydra服务调用方法,其特征在于,核心业务包包括第一业务包和第二业务包,第一业务包提供重定向实现、退出重定向、登出、callback获取token的方法,第二业务包提供操作失败和成功的后续处理逻辑和返回内容。
5.根据权利要求4所述的hydra服务调用方法,其特征在于,将hydra服务的服务接口进行封装时,还编写相关拦截器扩展鉴权功能进行封装。
6.根据权利要求5所述的hydra服务调用方法,其特征在于,封装的拦截器包括第一拦截器、第二拦截器、第三拦截器和第四拦截器;
7.根据权利要求1-6任一项所述的hydra服务调用方法,其特征在于,封装包为starter包。
8.一种hydra服务调用系统,其特征在于,包括,
9.一种终端,其特征在于,包括:
10.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储有hydra服务调用程序,所述hydra服务调用程序被处理器执行时实现如权利要求1-7任一项所述hydra服务调用方法的步骤。