System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及软件信息领域,尤其涉及一种可实现横向扩展规则的系统登录认证权限校验方法。
技术介绍
1、访问权限控制的应用性包括用户认证和用户授权两个部分。用户认证一般要求用户提供用户名和密码,系统通过校验用户名和密码来完成认证过程。用户授权指的是验证某个用户是否有权限执行某个操作,在一个系统中,通常不同用户具有不同的操作权限,比如对一个文件来说,有的用户只能进行读取,而有的用户既可进行读取,也可进行修改,因此只有通过相应用户授权验证的用户才能进行相应操作。
2、目前主流使用的访问权限控制框架有以下几类:
3、(1)spring security框架,是一种能够提供安全访问控制解决方案的框架,其提供了一组可以在spring应用上下文中配置的bean,利用spring ioc(控制反转)、di(依赖注入)和aop(面向切面编程)为系统应用提供声明式的安全控制访问功能,它所有的架构也是基于认证和授权这两个核心功能去实现的。但其无法脱离spring security框架,虽然功能强大,但属于重量级、配置繁琐、学习使用门槛高的安全框架。
4、(2)shiro框架,是一种强大且易用的安全框架,能够清晰处理身份验证、授权、管理会话以及密码加密。shiro框架主要分为认证和授权两个部分,其提供了一个权限框架,它规定了授权和认证的流程步骤,具体实现需要开发者实现。优点是shiro可以用于非web环境,不跟任何框架或容器绑定,独立运行,缺点是授权第三方需要手动实现。
5、显然,现有的访问权限控制框架主
6、使用门槛高,操作复杂,导致校验过程复杂,拦截效率低,横向扩展性差;
7、需第三方手动实现,自定义权限认证复杂程度,部署难度大,成本高;
8、采用单一的权限访问拦截方法,拦截的准确性较低,无法实现精准拦截,整体作用效果较差。
9、因此,现有技术存在缺陷,需要改进。
技术实现思路
1、本专利技术的目的是克服现有技术的不足,提供一种可实现横向扩展规则的系统登录认证权限校验方法,解决现有技术中,权限认证过程复杂,部署难度大,拦截效率低等问题;同时解决拦截方法单一,拦截结果准确性低,效果差的问题。
2、本专利技术的技术方案如下:一种可实现横向扩展规则的系统登录认证权限校验方法,包括以下步骤:
3、api网关拦截端口请求,通过端口请求的token数据从非关系型数据库获取对应的端口请求的数据值以进行端口请求所属客户端的第一非法访问判断;并校验端口请求内usersessionid请求字段是否为空,并从非关系型数据库中查找端口请求对应的user数据缓存,以进行端口请求所属客户端的第二非法访问判断。
4、系统拦截模块接收通过api网关的第二非法访问判断的端口请求,并判断端口请求内是否含有识别字段,以进行端口请求所属客户端的第三非法访问判断。
5、显然,api网关拦截端口请求分为两个阶段,分别进行第一非法访问判断、第二非法访问判断,可拦截端口请求中部分不符合要求的非法访问客户端。通过系统拦截模块进行第三非法访问判断后可拦截所有非法访问的客户端,保证其它合法访问客户端的正常访问,实现精准拦截。
6、进一步地,所述api网关拦截的端口请求为进行url字段的自定义字符替换后的端口请求。在本专利技术中采用spring cloud gateway法进行端口请求的url字段的自定义字符替换。需要说明的是,一般只有被修改过的url才能请求到正确的接口。
7、进一步地,所述第一非法访问判断包括以下步骤:
8、s10:判断端口请求的请求路径是否属于路径白名单内的路径。该路径白名单为自定义的白名单,可根据实际使用场景需求进行调整。
9、s11:若不在所述路径白名单内,则获取端口请求的请求头所携带的token数据,若不包含token数据,则该端口请求为非法访问;若包含token数据,则使用token数据作为key,从非关系型数据库获取对应的端口请求的数据值。该数据值为客户端会话id。
10、s12:若获取的数据值不为空,则给所述端口请求添加usersessionid请求头字段,并进入第二非法访问判断。
11、进一步地,若步骤s10的判断结果为是,则给所述端口请求添加usersessionid请求头字段,并进入第二非法访问判断。
12、进一步地,若步骤s11中获取的数据值为空,则判断该端口请求为非法访问。若为空,则说明非关系型数据库内无该端口请求对应的客户端的客户会话id,该客户端的端口请求为非法访问。
13、进一步地,所述第二非法访问判断过程为:
14、s20:判断通过第一非法访问判断的端口请求的请求头的忽略字段的值是否符合预设规则。
15、s21:若不符合,则校验端口请求内usersessionid请求字段是否为空,若为空,则判断为非法请求,若不为空,则从非关系型数据库中查找端口请求对应的user数据缓存,并被发送至所述系统拦截模块。
16、进一步地,若步骤s20中,端口请求的请求头的忽略字段的值符合预设规则,则直接被发送至所述系统拦截模块。
17、进一步地,所述系统拦截模块还用于接收系统内部客户端发送的端口请求。系统内部的端口请求会直接发送至系统拦截模块处,因此,系统拦截模块在接收到端口请求后,会先判断其是系统内部的端口请求还是外部的端口请求,若是系统内部的端口请求则可直接通过校验。
18、进一步地,所述系统拦截模块在判断端口请求内是否含有识别字段前,还包括以下步骤:
19、s30:判断端口请求是否为系统内部的端口请求;
20、s31:若是,则校验通过,若否,则进行端口请求的第三非法访问判断;
21、进一步地,所述第三非法访问判断的步骤为:
22、s40:判断端口请求内是否含有识别字段;
23、s41:若是,则校验通过,若否,则判断用户缓存数据是否为空;
24、s42:若用户缓冲数据为空,则校验通过;若用户缓冲数据不为空,则该端口请求为非法访问。经过第三非法访问后,通过校验的端口请求对应的客户端通过校验,可进行相关数据的访问并进行相应操作,保证只有相应权限的客户端才能进行相关操作,安全性更高。
25、采用上述方案,本专利技术提供一种可实现横向扩展规则的系统登录认证权限校验方法,具有以下有益效果:
26、经过第一非法访问判断、第二非法访问判断,可将大量非法访问的端口请求快速拦截在系统拦截模块外,保证拦截效率、准确性高;
27、可实现系统内的端口请求和系统外的端口请求的拦截过程的分流,有效提高系统内的端口请求的校验效率,作用效果更好;
28、可在api网关中自定义的添加权限校验规则,横向扩展性强,可有效提高用户体验感;
29、集成在spring cl本文档来自技高网...
【技术保护点】
1.一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,所述API网关拦截的端口请求为进行URL字段的自定义字符替换后的端口请求。
3.根据权利要求1所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,所述第一非法访问判断包括以下步骤:
4.根据权利要求3所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,若步骤S10的判断结果为是,则给所述端口请求添加UserSessionId请求头字段,并进入第二非法访问判断。
5.根据权利要求3所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,若步骤S11中获取的数据值为空,则判断该端口请求为非法访问。
6.根据权利要求1所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,所述第二非法访问判断过程为:
7.根据权利要求1所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,若步骤S
8.根据权利要求1所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,所述系统拦截模块还用于接收系统内部客户端发送的端口请求。
9.根据权利要求8所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,所述系统拦截模块在判断端口请求内是否含有识别字段前,还包括以下步骤:
10.根据权利要求1所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,所述第三非法访问判断的步骤为:
...【技术特征摘要】
1.一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,所述api网关拦截的端口请求为进行url字段的自定义字符替换后的端口请求。
3.根据权利要求1所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,所述第一非法访问判断包括以下步骤:
4.根据权利要求3所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,若步骤s10的判断结果为是,则给所述端口请求添加usersessionid请求头字段,并进入第二非法访问判断。
5.根据权利要求3所述的一种可实现横向扩展规则的系统登录认证权限校验方法,其特征在于,若步骤s11中获取的数据值为空,则判断该端口请求为非法访问。
<...【专利技术属性】
技术研发人员:刘明,鲜伙婷,姚正子,肖申鸿,
申请(专利权)人:城市之光深圳无人驾驶有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。