我维护的一个应用程序使用第三方商业 EJB 实现。我没有能力更改源代码,但我可以阅读它。
我已经确定 EJB 的源代码正在设置使用的具体实现javax.xml.parsers.DocumentBuilderFactory
:
System.setProperty("javax.xml.parsers.DocumentBuilderFactory",
"org.apache.xerces.jaxp.DocumentBuilderFactoryImpl");
我想防止这种情况——但来自 WAR 文件。
我的耳朵是:
EAR application.xml weblogic-application.xml 3rd-party-ejb.jar my-web-app.war
有一个关于实现我现在正在研究的自定义java.lang.SecurityManager的检测 System.setProperty 方法调用问题,但我仍然不明白 WAR 文件如何影响 3rd-party-ejb.jar 行为。
什么是正确的解决方案?