有没有办法在java代理中拦截java.io.Fileclass

Is there a way to intercept java.io.File class in java agent

全部

出于某种原因,我们想拦截 java.io.File class 以添加一些日志并进行一些检查。

我试图用 Byte Buddy 创建一个 java 代理来使用 Advice 为其他 class 做这样的事情。

但它对 class 不起作用,它已经在代理预维护之前加载。我在 byte-byddy 1.10.5

我也尝试过使用重定义,或者转换,但效果不佳,不确定我是否做错了。

有办法实现吗?

您需要启用对现有 类 的重新转换。此外,您需要定义一个自定义忽略匹配器,因为默认情况下不检测引导 类。

agentBuilder
  .with(RedefinitionStrategy.RETRANSFORMATION)
  .disableClassFormatChanges()
  .ignore(...)