[发明专利]一种具有安全验证的Java类热加载方法有效
申请号: | 202011621229.9 | 申请日: | 2020-12-31 |
公开(公告)号: | CN112764827B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 刘玉皎 | 申请(专利权)人: | 重庆广播电视大学重庆工商职业学院 |
主分类号: | G06F9/445 | 分类号: | G06F9/445;G06F8/65;G06F21/53;G06F21/60 |
代理公司: | 成都帝鹏知识产权代理事务所(普通合伙) 51265 | 代理人: | 黎照西 |
地址: | 400000 重*** | 国省代码: | 重庆;50 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 具有 安全 验证 java 加载 方法 | ||
本发明公开一种具有安全验证的Java类热加载方法,包括步骤:预设JavaWeb容器热加载类的特殊包路径;对Java的class文件进行加密处理获得密文文件,并将其发布在特殊包路径或特殊包路径的子包路径目录中;对Java类加载前类的包路径进行检测与判断;根据所定位的密文文件,检测密文文件被修改的时间戳;使用Java的JNI本地化方法解密验证密文文件;使用Java自定义类加载器加载所述已解密的字节码并定义被加载类,调用相应服务;释放类加载器的内存空间。本发明预防了在支持Java类热加载应用过程中Java类被非法替换的危险,能够有效使用在系统的生产过程。
技术领域
本发明属于计算机技术领域,特别是涉及一种具有安全验证的Java类热加载方法。
背景技术
在Java软件开发过程中,Java类文件更新后,在不重启Web服务的情况下,实现Java类服务更新的方法主要是采用Java类的热加载方法,目前Java类的热加载方法主要有两种。一种是Java Web容器自带的热加载功能,修改Web应用的配置参数实现Java类的热加载功能,但这种方法如果Tomcat Web容器中当前应用系统很庞大时,启动系统会耗时几分钟甚至更长时间,这样会导致服务中断或超时,严重的可能造成数据的不完整性,此种方法实现Java类的热加载功能实用价值不大。第二种Java类的热加载方法是利用Java类的类加载原理,开发Java类的自定义类加载器,实现Java类的热加载过程。但是此种热加载方法存在着Java类被替换的安全性问题,在生产环境中也少有使用。
以上两种Java类的热加载方法都忽略了共同的问题,就是没有对更新后的Java类字节码文件进行安全性、可靠性检测,这样就给一些不法分子提供了可乘之机,在应用的运行过程中通过更换Java类的字节码文件、篡改服务方法等手段以获取不正当的服务。特别是在一些可在线编辑Java源代码,使用动态编译技术,编译成Java类的字节码文件,提供API服务系统中(比如一些数据中台API、数据总线API等),这类没有安全验证的Java类热加载是非常危险的,所以Java类的热加载方法主要运用于应用系统的开发调试阶段,少运用于系统生产过程。
发明内容
为了解决上述问题,本发明提出了一种具有安全验证的Java类热加载方法,预防了在支持Java类热加载应用过程中Java类被非法替换的危险,能够有效使用在系统的生产过程。
为达到上述目的,本发明采用的技术方案是:一种具有安全验证的Java类热加载方法,包括步骤:
S10,预设JavaWeb容器热加载类的特殊包路径;
S20,对Java的class文件进行加密处理获得密文文件,并将其发布在特殊包路径或特殊包路径的子包路径目录中;
S30,对Java类加载前类的包路径进行检测与判断,并将所获取的类的包路径与类名称定位密文文件;
S40,根据所定位的密文文件,检测密文文件被修改的时间戳,若修改过则重新加载此类;
S50,使用Java的JNI本地化方法解密验证密文文件,将已解密的字节码作为自定义类加载器输入参数;
S60,使用Java自定义类加载器加载所述已解密的字节码并定义被加载类;
S70,根据所定义的被加载类,调用相应服务;
S80,释放类加载器的内存空间。
进一步的是,关闭JavaWeb容器自带的热加载功能,预防因文件的改变引起系统的重启;设置支持Java类热加载特殊包路径及其子包路径,使其他Java类包路径不支持热加载功能。
进一步的是,通过约定的秘钥采用可逆的加密算法将Java的class文件与预定的安全验证规则统一加密成密文文件,密文文件名与类名相同,根据类的包路径将其发布在特殊包路径或特殊包路径的子包路径目录中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于重庆广播电视大学重庆工商职业学院,未经重庆广播电视大学重庆工商职业学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011621229.9/2.html,转载请声明来源钻瓜专利网。