一种软件虚拟仓库的缺陷组件阻断方法和系统技术方案

技术编号:32582539 阅读:19 留言:0更新日期:2022-03-09 17:14
本发明专利技术公开了一种软件虚拟仓库的缺陷组件阻断方法和系统,所述方法包括如下步骤:获取项目特征文件,根据所述项目特征文件生成需要的开源组件名和版本;根据所述需要的开源组件名和版本向中心仓库或虚拟库发送组件请求,获取中心仓库的响应请求;策略库建立缺陷开源组件名称、版本和流量路径清单,将所述组件请求/响应请求向所述策略库查询是否命中策略库的开源组件名称、版本和流量路径;若在策略库中命中开源组件名称、版本和流量路径,则生成阻断信息以阻断和私服仓库的交互,策略库通过识别开源组件的流量路径来判断是否是缺陷开源组件,进一步执行缺陷开源组件的流量阻断操作,相比于传统的防火墙技术可以节约成本和提高效率。高效率。高效率。

【技术实现步骤摘要】
一种软件虚拟仓库的缺陷组件阻断方法和系统


[0001]本专利技术涉及互联网软件领域的组件管理
,特别涉及一种软件虚拟仓库的缺陷组件阻断方法和系统。

技术介绍

[0002]目前现有技术中,软件的虚拟仓库有Jfrog Artifactory和Sonatype Nexus私服仓库,上述现有的私服仓库可以实现中心仓库到私服仓库的管控,然而上述现有技术存在如下技术缺陷:私服仓库主要通过防火墙进行缺陷开源组件阻断,其阻断的成本较高;私服仓库只在私服仓库和中心仓库之间对缺陷开源组件进行阻断和管控,使得阻断和管控的范围不够全面容易造成遗漏;私服仓库插件的形式需要对每类私服的不同版本进行适配,配置过程复杂,增加了配置难度。

技术实现思路

[0003]本专利技术其中一个专利技术目的在于提供一种软件虚拟仓库的缺陷组件阻断方法和系统,所述方法和系统通过构建策略库的方式阻断缺陷开源组件,策略库通过识别开源组件的流量路径来判断是否是缺陷开源组件,进一步执行缺陷开源组件的流量阻断操作,相比于传统的防火墙技术可以节约成本和提高效率。
[0004]本专利技术另一个专利技术目的在于提供一种软件虚拟仓库的缺陷组件阻断方法和系统,所述方法和系统通过异步请求的方式请求替换的URL,在请求的同时解析URL,可以提高所述系统的处理效率。
[0005]本专利技术另一个专利技术目的在于提供一种软件虚拟仓库的缺陷组件阻断方法和系统,所述方法和系统包括超时控制策略,在包管理器中设置响应时间阈值,若超过所述阈值,则向虚拟库重新发送请求,并实时监控异步请求是否成功,可以提高系统对缺陷开源组件的有效阻断和管控。
[0006]为了实现至少一个上述专利技术目的,本专利技术进一步提供一种软件虚拟仓库的缺陷组件阻断方法,所述方法包括如下步骤:
[0007]获取项目特征文件,根据所述项目特征文件生成需要的开源组件名和版本;
[0008]根据所述需要的开源组件名和版本向中心仓库或虚拟库发送组件请求;
[0009]策略库建立缺陷开源组件流量路径清单,将所述组件请求后向所述策略库查询是否命中策略库的开源组件流量路径;
[0010]若在策略库中命中开源组件流量路径,则生成阻断信息以阻断和中心仓库的交互。
[0011]根据本专利技术其中一个较佳实施例,在所述策略库配置流量阻断开关,当所述流量阻断开关关闭时,所述组件请求直接访问中心仓库,并从所述中心仓库获取对应的开源组件,若所述流量阻断开关打开时,则将请求中的开源组件路径信息和所述策略库对比,存在命中的路径信息则阻断获取请求对应的开源组件。
[0012]根据本专利技术另一个较佳实施例,所述特征文件包括requirements.txt文件、pom.xml文件、composer.json文件和package.json中的至少一种,其中所述特征文件记录开源组件名和版本信息,包管理器根据所述特征文件记录的开源组件名和版本信息导入到私服仓库中。
[0013]根据本专利技术另一个较佳实施例,所述阻断方法包括构建web监听服务,设置http路由*path进行通配符匹配,用于监听所有发往该路由端口的get请求。
[0014]根据本专利技术另一个较佳实施例,所述阻断方法还包括:所述阻断方法还包括:所述web监听服务获取路由端口的流量数据,记录get请求的URL地址,将所述URL地址替换为镜像的源地址,并判断get请求替换的URL地址是否为源码URL。
[0015]根据本专利技术另一个较佳实施例,所述阻断方法包括:获取所述get请求的URL地址,并判断所述get请求的URL地址的格式,并根据所述URL地址的格式判断是否为系统URL或源码URL。
[0016]根据本专利技术另一个较佳实施例,所述阻断方法还包括对策略库的异步请求,具体步骤包括:
[0017]创建内容接收器、退出信号channel和取消context;
[0018]启动goroutine异步请求获取所述被替换的URL地址;
[0019]解析所述被替换的URL地址,并根据所述解析的URL地址在策略库中查找对应的路径信息。
[0020]根据本专利技术另一个较佳实施例,所述阻断方法包括请求的超时控制,具体包括如下步骤:
[0021]使用go语言的select分别监听异步请求时设置的退出信号channel和携带阈值的时间channel;
[0022]若监听到所述退出信号channel,判断所述退出信号channel内容为成功,虚拟库执行向包管理器传输body数据;
[0023]若监听到所述携带阈值的时间channel,则生成重定向请求数据,并关闭当前异步请求。
[0024]为了实现至少一个上述专利技术目的,本专利技术进一步提供一种软件虚拟仓库的缺陷组件阻断系统,所述系统执行所述一种软件虚拟仓库的缺陷组件阻断方法。
[0025]本专利技术进一步提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行所述一种软件虚拟仓库的缺陷组件阻断方法。
附图说明
[0026]图1显示的是本专利技术一种软件虚拟仓库的缺陷组件阻断方法的流程示意图。
[0027]图2显示的是本专利技术一种软件虚拟仓库的缺陷组件阻断系统的一个较佳实施例示意图。
[0028]图3显示的是本专利技术一种软件虚拟仓库的缺陷组件阻断系统的另一个较佳实施例示意图。
具体实施方式
[0029]以下描述用于揭露本专利技术以使本领域技术人员能够实现本专利技术。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。在以下描述中界定的本专利技术的基本原理可以应用于其他实施方案、变形方案、改进方案、等同方案以及没有背离本专利技术的精神和范围的其他技术方案。
[0030]可以理解的是,术语“一”应理解为“至少一”或“一个或多个”,即在一个实施例中,一个元件的数量可以为一个,而在另外的实施例中,该元件的数量可以为多个,术语“一”不能理解为对数量的限制。
[0031]请参考图1

图3,本专利技术公开了一种软件虚拟仓库的缺陷组件阻断方法和系统,其中所述系统包括两种架构:一种是不包含构建工具的架构,在该架构中私服仓库直接和虚拟库网关进行交互生成组件请求,并相应该组件请求。另一种是包含构建工具的架构,其中包含构建工具的架构通过增加一个构建工具来生成组件请求并获取组件请求的响应。上述两种架构基本原理相同,本专利技术仅对第二种架构进一步解释说明。
[0032]具体的,在第二种架构中存在两种实施方式,一种是包含虚拟库的实施方式,另外一种为不包含虚拟仓库的实施方式,其中本专利技术以python的pip包管理器举例说明,不包含虚拟库的实施方式主要包括如下步骤:通过所述包管理器获取项目中的特征文件,其中项目中的特征文件包括requirements.txt文件pom.xml文件、composer.json文件和package.json中的至少一种,其中所述特征文件中记载了软件项目中需要用到的开源组件名称本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件虚拟仓库的缺陷组件阻断方法,其特征在于,所述方法包括如下步骤:获取项目特征文件,根据所述项目特征文件生成需要的开源组件名和版本;根据所述需要的开源组件名和版本向中心仓库或虚拟库发送组件请求,获取中心仓库的响应请求;策略库建立缺陷开源组件名称、版本和流量路径清单,将所述组件请求/响应请求向所述策略库查询是否命中策略库的开源组件名称、版本和流量路径;若在策略库中命中开源组件名称、版本和流量路径,则生成阻断信息以阻断和私服仓库的交互。2.根据权利要求1所述的一种软件虚拟仓库的缺陷组件阻断方法,其特征在于,在所述策略库配置流量阻断开关,当所述流量阻断开关关闭时,所述组件请求直接访问中心仓库,并从所述中心仓库获取对应的开源组件,若所述流量阻断开关打开时,则将请求中的开源组件路径信息和所述策略库对比,存在命中的路径信息则阻断获取请求对应的开源组件。3.根据权利要求1所述的一种软件虚拟仓库的缺陷组件阻断方法,其特征在于,所述特征文件包括requirements.txt文件、pom.xml文件、composer.json文件和package.json中的至少一种,其中所述特征文件记录开源组件名和版本信息,包管理器根据所述特征文件记录的开源组件名和版本信息导入到私服仓库中。4.根据权利要求1所述的一种软件虚拟仓库的缺陷组件阻断方法,其特征在于,所述阻断方法包括构建web监听服务,设置http路由*path进行通配符匹配,用于监听所有发往该路由端口的get请求。5.根据权利要求4所述的一种软件虚拟仓库的缺陷组件阻断方法,其特征在于,所述阻断方法还包括:所述web监听服务获取路由端口的流量数据,记录get请求的URL地址,将...

【专利技术属性】
技术研发人员:倪津涛
申请(专利权)人:杭州默安科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1