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

标签 java class auditing non-deterministic

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

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

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

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

最佳答案

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

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

相关文章:

sql - Hibernate Envers SQL 审计

ejb-3.0 - 使用 JBoss Seam (EJB3+JSF) 审核日志

java - Java 中的 Mandelbrot 使用 4 线程

java - 如何避免 JDBC 驱动程序断开连接时出现异常?

java - 错误: Could not find or load main class TestClient

java - 如何将一些值从一个类转移到另一个类?

azure - SQL Server Azure 数据更改审核技术

java - 如何在 JFrame 中动态重绘 JPanel?

java - 如何将 3D 查看器插入到 .obj 文件的 Java 应用程序中?

java - 如何访问基类方法?