【技术实现步骤摘要】
一种动态代理模式下实现接口调用方鉴权的方法及装置
[0001]本专利技术涉及政务服务
,特别涉及一种动态代理模式下实现接口调用方鉴权的方法及装置。
技术介绍
[0002]针对服务接口API添加不同的鉴权逻辑,目前使用的是方式是静态代理。Java中的代理模式可以实现帮助被代理者完成一些前期的准备工作和后期的善后工作,但是核心的业务逻辑仍然是由被代理者完成。被代理类只需要专注于自己的核心代码,其余工作交给代理类即可,使得代码更加简洁,分工明确。
[0003]但是静态代理也是有自己的缺点:第一、代理类和委托类实现了相同的服务接口API,代理类通过委托类实现了相同的方法,这样就出现了大量的代码重复。如果服务接口API增加一个方法,所有实现类和所有代理类都需要实现此方法,增加了代码维护的复杂度。
[0004]第二、代理对象只服务于一种类型的对象,如果要服务多类型的对象,势必要为每一种对象都进行代理。因此,静态代理在程序规模稍大时就无法胜任了。即静态代理类只能为特定的服务接口API(Service)服务,如想要为多 ...
【技术保护点】
【技术特征摘要】
1.一种动态代理模式下实现接口调用方鉴权的方法,其特征在于:当外部系统与政务应用系统对接业务数据时,政务服务应用系统先对来访的外部系统用户进行鉴权,若鉴权成功则外部系统通过服务接口API调用政务服务应用系统数据,否则政务服务应用系统拒绝外部系统用户访问调用系统数据;具体实现步骤如下:第一步,定义主业务逻辑;为政务服务应用系统定义一个服务接口API,然后定义一个实现类实现该服务接口API,重写实现业务逻辑方法;第二步,定义切面抽象类;使用模板方法的设计模式定义一个切面抽象类,并在定义切面类时按需重写开始,结束,异常,前置增强和后置增强的业务逻辑方法;第三步,定义切面类;创建一个切面类,并在切面类中配置切入点和增强,当确定切入点后,重写切面抽象类模板前置增强接口;当前端访问政务服务应用系统时,根据配置在应用系统的应用软件编号App ID与服务接口API调用方的签名Sign来校验调用者是否有权限调用该服务接口API;第四步,测试生成动态代理类;创建需要鉴权的服务接口API对象,然后定义切面对象,动态创建代理对象,根据切面类的前置增强来增加服务接口API调用方鉴权操作,若鉴权成功则直接调用被代理的服务接口API,进而实现对业务逻辑的调用。2.根据权利要求1所述的动态代理模式下实现接口调用方鉴权的方法,其特征在于:所述第二步中,重写isIntercept()方法,用来判断切入点是否正确。3.根据权利要求1所述的动态代理模式下实现接口调用方鉴权的方法,其特征在于:所述第三步中,根据方法名称来判断配置的切入点是否执行操作。4.根据权利要求1所述的动态代理模式下实现接口调用方鉴权的方法,其特征在于:所述第三步中,前置增强接口利用App ID与AppSecre进行MD5加密计算,与服务接口API调用方签名Sign比较是否一致,若一致...
【专利技术属性】
技术研发人员:丁福祥,
申请(专利权)人:浪潮软件股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。