Java应用的依赖管理系统的制作方法

文档序号:36314347发布日期:2023-12-07 21:22阅读:45来源:国知局
Java的制作方法

本技术涉及云计算,尤其涉及一种java应用的依赖管理系统。


背景技术:

1、随着信息化程度和云计算能力的不断提高,信息安全也成为了一个不可忽视的要点。java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,在云环境中部署java应用,需要将java应用在本地环境中的所有资源和类打包成应用部署包,通过互联网上传到云平台的应用容器上运行。

2、在现有的java应用中,通常需要大量实用、依赖各种第三方的开源组件来加速研发,而这些第三方依赖组件的漏洞管理是一个相当复杂且亟待解决的问题。常用的漏洞管理实践中,主要是采用工具对应用进行漏洞扫描,并给出相应的安全性扫描报告。

3、然而,实际的漏洞处理、依赖升级需要开发者介入以手动处理,后续还需要运维人员介入进行应用的部署升级。


技术实现思路

1、本技术提供一种java应用的依赖管理系统,用以解决现有技术中java应用的第三方依赖组件大量依靠相关工作人员介入处理漏洞的问题。

2、第一方面,本技术提供一种java应用的依赖管理系统,包括:应用分析模块、依赖管理中心模块和应用部署模块,其中,

3、所述应用分析模块,用于获取待部署java应用涉及的m个依赖jar包,并将所述m个依赖jar包和应用描述文件上传至所述依赖管理中心模块,其中,所述应用描述文件是基于所述m个依赖jar包的哈希值和文件名生成的,所述m为正整数;

4、所述依赖管理中心模块,用于根据所述哈希值、所述文件名和漏洞列表对所述m个依赖jar包进行过滤,以确定可分发至所述应用部署模块的n个依赖jar包,其中,所述漏洞列表中存储有被拉黑的依赖jar包的哈希值和文件名,所述n为正整数,所述n小于等于m;

5、所述应用部署模块,用于从所述依赖管理中心模块获取所述java应用对应的所述应用描述文件和所述n个依赖jar包,以部署所述java应用,并在部署完成后,启动所述java应用。

6、在一种可能的实现方式中,所述应用分析模块具体用于:

7、遍历所述m个依赖jar包,针对每个依赖jar包生成各自对应的哈希值;

8、基于每个依赖jar包的文件名和所述哈希值生成标识信息,其中,每个依赖jar包对应各自的标识信息;

9、根据所述标识信息,生成所述应用描述文件。

10、在一种可能的实现方式中,所述应用分析模块还用于:

11、读取每个依赖jar包的文件内容;

12、对文件内容进行哈希计算,生成所述每个依赖jar包的哈希值。

13、在一种可能的实现方式中,所述依赖管理中心模块还用于:

14、判断所述漏洞列表中是否包含所述应用描述文件中的m个哈希值和m个文件名;

15、若是,则将包含在所述漏洞列表中的p个哈希值和p个文件名对应的依赖jar包确定为待处理的依赖jar包,并将没有包含在所述漏洞列表中的m-p个哈希值和文件名对应的依赖jar包确定为第一依赖jar包,根据所述待处理的依赖jar包和所述第一依赖jar包确定n个依赖jar包,其中,所述p为正整数,所述p小于等于m;

16、若否,则将所述m个哈希值和所述m个文件名对应的依赖jar包作为所述n个依赖jar包。

17、在一种可能的实现方式中,所述依赖管理中心模块具体用于:

18、在确定有待处理的依赖jar包后,针对每个待处理的依赖jar包,从预设配置信息中获取所述待处理的依赖jar包的最新版本号,所述预设配置信息中存储有所述java应用涉及的最新版本号的依赖jar包;

19、根据所述最新版本号、所述漏洞列表和所述第一依赖jar包确定n个依赖jar包,其中,所述漏洞列表中存储有被拉黑的依赖jar包的版本号。

20、在一种可能的实现方式中,所述依赖管理中心模块具体用于:

21、判断所述最新版本号是否包含在所述漏洞列表中;

22、若是,则将所述待处理的依赖jar包确定为拒绝分发至所述应用部署模块的依赖jar包,并将所述第一依赖jar包作为所述n个依赖jar包;

23、若否,则从所述预设配置信息中获取所述最新版本号对应的依赖jar包,并将所述最新版本号对应的依赖jar包确定为第二依赖jar包,将所述第一依赖jar包和所述第二依赖jar包作为所述n个依赖jar包。

24、在一种可能的实现方式中,所述依赖管理中心模块还用于:

25、根据所述应用描述文件中的所述m个哈希值,对所述m个依赖jar包进行去重,以删除所述m个依赖jar中的重复依赖jar包。

26、在一种可能的实现方式中,所述依赖管理中心模块具体用于:

27、判断所述应用描述文件中是否包含有相同的哈希值;

28、若是,则获取所述相同的哈希值对应的q个依赖jar包,保留其中一个依赖jar包,并删除其余的依赖jar包,所述q为正整数,所述q小于等于m。

29、在一种可能的实现方式中,所述应用部署模块还用于:

30、在部署所述java应用时,从所述依赖管理中心模块获取所述java应用对应的所述应用描述文件;

31、基于所述应用描述文件中的所述哈希值,从所述依赖管理中心模块拉取所述哈希值对应的所述n个依赖jar包,其中,所述依赖管理中心模块允许所述应用部署模块拉取所述n个依赖jar包,被过滤掉的m-n个依赖jar包拒绝拉取;

32、根据所述应用描述文件,启动所述java应用。

33、在一种可能的实现方式中,所述应用部署模块还用于:

34、根据所述应用描述文件获取m个依赖jar包的文件名;

35、根据所述m个依赖jar包的文件名和已拉取的n个依赖jar包的文件名,获取未拉取到的m-n个依赖jar包的文件名;

36、输出提示信息,所述提示信息用于提示所述m-n个依赖jar包对应的应用组件不能运行,缺少依赖。

37、本技术提供的java应用的依赖管理系统,包括应用分析模块、依赖管理中心模块和应用部署模块,其中,所述应用分析模块,用于获取待部署java应用涉及的m个依赖jar包,并将所述m个依赖jar包和应用描述文件上传至所述依赖管理中心模块,其中,所述应用描述文件是基于所述m个依赖jar包的哈希值和文件名生成的,所述m为正整数;所述依赖管理中心模块,用于根据所述哈希值、所述文件名和漏洞列表对所述m个依赖jar包进行过滤,以确定可分发至所述应用部署模块的n个依赖jar包,其中,所述漏洞列表中存储有被拉黑的依赖jar包的哈希值和文件名,所述n为正整数,所述n小于等于m;所述应用部署模块,用于从所述依赖管理中心模块获取所述java应用对应的所述应用描述文件和所述n个依赖jar包,以部署所述java应用,并在部署完成后,启动所述java应用。

38、本技术的技术方案通过将待部署java应用所涉及到的所有依赖jar包的哈希值和文件名作为输入信息,写入到应用描述文件中,并将应用描述文件和所有的依赖jar包一起打包上传到依赖管理中心模块,在该模块中,基于哈希值、文件名对所有依赖jar包进行过滤,以过滤出不可直接分发至应用部署模块的被拉黑的依赖jar包,并对这些被拉黑的依赖jar包进行相应处理,有新版本的强制升级后归入可分发队列,没有新版本的归入拒绝分发队列。在应用部署完成后,通过应用描述文件和可拉取到的依赖jar包启动java应用。由此便可实现依赖jar包漏洞的自动识别,并根据预设配置信息去处理存在漏洞的依赖jar包,以及在依赖jar包的分发过程中,对拒绝分发的依赖jar包进行拦截过滤,整个过程降低了漏洞处理中对开发者的人工依赖,提高了署java应用的依赖jar包漏洞处理的便捷性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1