热禁用从 javax 到 jakarta 包的 WildFly 26.0.1 字节码转换
Hot to disable WildFly 26.0.1 bytecode transformation from javax to jakarta packages
我们正在使用 WildFly 26.0.1 和 Java 17。当您部署 WAR 文件时,WildFly 检查 JAR 中包含的所有文件 WAR,并且修改所有编译的class文件(.class) 引用“javax.”包,将它们替换为相应的“jakarta.”包。这个自动字节码转换过程给我们带来了 2 个问题:
- 所有修改过的JAR文件的签名失效,JVM拒绝加载并执行它们。 JAR 签名是我们发现的确保我们的软件不被我们的客户、黑客 and/or 病毒篡改的唯一可靠方法。
- WAR 中包含的某些 JAR 文件不打算由 WildFly[ 执行=48=]。相反,它们使用 Java Web Start (JNLP) 技术下载到客户端,并由 Java 1.8 ( JRE) 和“javax.”包。出于安全原因,JNLP 不会加载和执行未正确签名 的已下载 JAR 文件。此外,我们不希望这些 JAR 文件使用“jakarta.”包。
我们知道哪些 JAR 文件被 client 使用“javax.”包,其中 JAR 文件由 WildFly 使用“jakarta.”包执行。所以,问题是:当你部署 WAR个文件?
我假设您使用的是 WildFly Preview。可以通过将 org.wildfly.unsupported.skip.jakarta.transformer
系统 属性 设置为 true
.
来禁用部署转换器
我们正在使用 WildFly 26.0.1 和 Java 17。当您部署 WAR 文件时,WildFly 检查 JAR 中包含的所有文件 WAR,并且修改所有编译的class文件(.class) 引用“javax.”包,将它们替换为相应的“jakarta.”包。这个自动字节码转换过程给我们带来了 2 个问题:
- 所有修改过的JAR文件的签名失效,JVM拒绝加载并执行它们。 JAR 签名是我们发现的确保我们的软件不被我们的客户、黑客 and/or 病毒篡改的唯一可靠方法。
- WAR 中包含的某些 JAR 文件不打算由 WildFly[ 执行=48=]。相反,它们使用 Java Web Start (JNLP) 技术下载到客户端,并由 Java 1.8 ( JRE) 和“javax.”包。出于安全原因,JNLP 不会加载和执行未正确签名 的已下载 JAR 文件。此外,我们不希望这些 JAR 文件使用“jakarta.”包。
我们知道哪些 JAR 文件被 client 使用“javax.”包,其中 JAR 文件由 WildFly 使用“jakarta.”包执行。所以,问题是:当你部署 WAR个文件?
我假设您使用的是 WildFly Preview。可以通过将 org.wildfly.unsupported.skip.jakarta.transformer
系统 属性 设置为 true
.