gpt4 book ai didi

java - 如何审核用户提供的类文件以将包、类和方法列入黑名单

转载 作者:行者123 更新时间:2023-12-01 15:47:45 25 4
gpt4 key购买 nike

我正在开发一个应用程序,该应用程序托管作为 Java 类文件提供的用户定义的存储过程。这些过程需要是确定性的,我想将作为非确定性来源的各种包和方法列入黑名单。我查看了 java.lang.Class 和 javax.tools.* 中可用的内容。

看起来我可以使用 java.lang.Class 审核成员、方法参数和返回类型。但是,要审核方法内容,我似乎必须分析原始类文件。

还有一些极端情况,例如我需要审核的静态初始化 block 和成员变量初始化。在某些情况下,例如 java.util.Date,默认构造函数是不确定的,但其他情况都很好。

是否有一个框架或工具可以使分析类文件的这些方面变得容易?

最佳答案

是的,有。正如您所说的“分析这些方面”,例如AspectJ ;) 例如,您可以将加载时编织与 javaagent 结合使用。另一种方法是使用aspectj类加载器加载用户的类。您可以声明寻找给定方法调用的切入点。您还可以封装用户方法并计算执行时间等。

关于java - 如何审核用户提供的类文件以将包、类和方法列入黑名单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6800977/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com